我试图在iOS和OS X上分享我的Scene Kit代码,但接受颜色(和图像)的API调用根据平台采取UIColor/UIImage或NSColor/NSImage。我如何在Swift中创建正确的类而不复制代码?
使用条件编译和类型别名:
#if os(OSX)
typealias Color = NSColor
typealias Image = NSImage
#else
typealias Color = UIColor
typealias Image = UIImage
#endif
然后使用Color代替UIColor NSColor:
self.gameView!.backgroundColor = Color(red: 0, green: 0.2, blue: 0.5, alpha: 1)
编辑2016-01-17:正如DDPWNAGE上面提到的,苹果创建的SKColor
具有基本相同的定义。