Swift 适用于Mac OS和iOS的通用类
我想为Mac OS和iOS应用程序创建一个类。不幸的是,我不能在iOS上使用NSColor,在Mac OS上也不能使用UIColor 实际上,我有以下代码:Swift 适用于Mac OS和iOS的通用类,swift,Swift,我想为Mac OS和iOS应用程序创建一个类。不幸的是,我不能在iOS上使用NSColor,在Mac OS上也不能使用UIColor 实际上,我有以下代码: #if os(iOS) func myFunc(color: UIColor?) { self.myFuncX(color) } #elseif os(OSX) func myFunc(color: NSColor?) { self.myFuncX(color) } #endi
#if os(iOS)
func myFunc(color: UIColor?) {
self.myFuncX(color)
}
#elseif os(OSX)
func myFunc(color: NSColor?) {
self.myFuncX(color)
}
#endif
private func myFuncX(color: AnyObject?) {
#if os(iOS)
myColor = color as! UIColor
#elseif os(OSX)
myColor = color as! NSColor
#endif
}
有更好的方法吗?您应该能够对color类使用
typealias
,如下所示:
#if os(iOS)
typealias XColor = UIColor
#elseif os(OSX)
typealias XColor = NSColor
#endif
func myFunc(color: XColor?) {
self.myFuncX(color)
}
其思想是将条件编译限制为
XColor
的类型定义,然后根据特定系统的需要,使用该类型别名代替UIColor
或NSColor
。是的,抱歉。。。我只是没有在iOS上测试代码;)我编辑了我的帖子。