Swift默认过载不可用 - 找不到SCNReferenceNode(名称:)

问题描述 投票:0回答:1

我对Xcode比较陌生。

想知道具有相同代码的两个文件如何产生两个非常不同的构建结果。第一个是从Apple的“Creating Face Based AR Experiences”示例代码下载的,第二个是我项目的实现。我已经尝试了我能想到的一切;重建,清理,重新安装,重新启动....甚至从Apple的样本中复制了确切的代码(如图所示),但仍然失败。似乎是一个错误,使SCNReferenceNode无法在我的项目中正常工作(在右侧)。两个文件都提前完成了。我尝试用SCNReferenceNode(url: )Bundle.main.url(forResource: withExtension: )替换代码并显示相同的错误。它可能是相关的;当加载项目时,似乎有一些丢失的文档(在Xcode中以红色突出显示),尽管它们本身位于物理文件中。我已经包含了并排比较的截图;正如你所看到的,相同但仍然是一个错误。关于可能导致这种情况的任何想法?

截图:This is a side by side comparison of the Apple sample code and my code - now the same..

swift overloading scenekit arkit scnnode
1个回答
1
投票

如果您查看Utilities.swift文件,Apple已添加了SCNReferenceNode的扩展,它添加了一个方便的init函数。

extension SCNReferenceNode {
    convenience init(named resourceName: String, loadImmediately: Bool = true) {
        let url = Bundle.main.url(forResource: resourceName, withExtension: "scn", subdirectory: "Models.scnassets")!
        self.init(url: url)!
        if loadImmediately {
            self.load()
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.