我有一个从Xcode 9 / New Project / Cross Platform Game App创建的应用程序,目标:macOS和iOS。
我编写了以下简单函数来从数据资产中加载文本。
func dataAssetAsString(_ name: String) -> String? {
if let asset = NSDataAsset(name: NSDataAsset.Name(name)) {
return String(data: asset.data, encoding: .utf8)
}
return nil
}
我对以下事情感到困惑:
我发现iOS和macOS之间的代码共享的大多数答案建议在文件/填充开始时进行某种条件导入。
我浏览了WWDC 2014 Session 233: Sharing code between iOS and OS X的幻灯片,它明确表示我们不应该在Swift中进行填充。
另一方面,我不明白应该做什么而不是shimming。提到的为5行函数创建和编译共享框架的非常复杂的过程不是正确的方向。
2018年(Swift 4,Xcode 9,iOS 11,macOS 10.13),将这样一个简单的跨平台代码添加到应用程序的推荐方法是什么?
MetalKit的神奇之处是什么让它在没有垫片的情况下工作?它内部是否有垫片?