我正在尝试在iOS和OS X上共享我的Scene Kit代码,但是接受颜色(和图像)的API调用可以采用UIColor / UIImage或NSColor / NSImage,具体取决于平台。如何在不重复代码的情况下在Swift中创建正确的类?
答案 0 :(得分:15)
使用条件编译并输入别名:
#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,Apple创建了SKColor
,其定义基本相同。