我正试图在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

10-08 05:41