Перегрузка Swift по умолчанию недоступна - SCNReferenceNode (named:) не найден - PullRequest
0 голосов
/ 21 марта 2019

Я относительно новичок в Xcode.

Интересно, как два файла с одинаковым кодом могут дать два совершенно разных результата сборки. Первый загружается из примера кода Apple «Создание 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..

1 Ответ

1 голос
/ 22 марта 2019

Если вы посмотрите в файл Utilites.swift, Apple добавит расширение к SCNReferenceNode, которое добавляет удобную функцию инициализации.

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()
        }
    }
}
...