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

Swift默认重载不可用-找不到SCNReferenceNode(名称:),swift,overloading,scenekit,arkit,scnnode,Swift,Overloading,Scenekit,Arkit,Scnnode,我对Xcode比较陌生 想知道两个具有相同代码的文件如何产生两个非常不同的构建结果。第一个是从苹果的“创建基于人脸的AR体验”示例代码下载的,第二个是我的项目的实现。我已经尝试了我能想到的一切;重建、清理、重新安装、重新启动。。。。甚至从苹果的样本中复制了精确的代码(如图所示),但仍然失败。似乎是一个错误阻止了SCNReferenceNode在我的项目(右侧)中正常工作。这两个文件在更早的时候都能正常工作。我尝试用SCNReferenceNode(url:)和Bundle.main.url(fo

我对Xcode比较陌生

想知道两个具有相同代码的文件如何产生两个非常不同的构建结果。第一个是从苹果的“创建基于人脸的AR体验”示例代码下载的,第二个是我的项目的实现。我已经尝试了我能想到的一切;重建、清理、重新安装、重新启动。。。。甚至从苹果的样本中复制了精确的代码(如图所示),但仍然失败。似乎是一个错误阻止了
SCNReferenceNode
在我的项目(右侧)中正常工作。这两个文件在更早的时候都能正常工作。我尝试用
SCNReferenceNode(url:)
Bundle.main.url(forResource:withExtension:)
组合替换代码,并显示相同的错误。这可能是相关的;加载项目时,似乎有一些缺少的文档(在Xcode中以红色突出显示),尽管它们在物理文件中。我已经包括了一个并排比较的截图;正如您所看到的,相同但仍然是一个错误。你知道是什么导致了这一切吗


屏幕截图:

如果你查看Utilites.swift文件,苹果公司已经在
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()
        }
    }
}

谢谢你@jamesp