我正试图在I OS和OS X上共享我的场景工具包代码,但是接受颜色(和图像)的API调用会根据平台的不同采用UIColor/UIImage或NSColor/NSImage。如何在不复制代码的情况下用Swift创建正确的类?
最佳答案
使用条件编译和类型别名:
#if os(OSX)
typealias Color = NSColor
typealias Image = NSImage
#else
typealias Color = UIColor
typealias Image = UIImage
#endif
然后使用颜色而不是UIColor或NSColor:
self.gameView!.backgroundColor = Color(red: 0, green: 0.2, blue: 0.5, alpha: 1)
编辑2016-01-17:正如上面提到的,苹果已经用基本相同的定义创建了
SKColor
。