我试图在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年1月17日:正如上面提到的DDPWNAGE一样,Apple所创建SKColor的定义基本相同。
SKColor