首页 > 解决方案 > 为什么我不能使用 Swift 4 加载 Collada 文件?

问题描述

我正在构建一个游戏引擎,并希望为 XML 格式的 Collada 文件实现我自己的解析器。我正在尝试创建一个 XMLParser 来为我执行此操作,但由于某种原因,在加载 .dae 扩展名时,没有任何效果。

加载文件示例:

//file = XMLParserDelegate
    if let url = Bundle.main.url(forResource: colladaFileName, withExtension: "dae") {
        if let parser = XMLParser.init(contentsOf: url) {
            parser.delegate = self
            parser.parse()
        }
    }

有趣的是,所有这些代码都被执行了。直到它调用函数“parseErrorOccurred”,我才能看到错误消息指出“文档为空”

func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error){
    print(parseError) //result: Document is empty
}

这让我真正感到困惑!

当我将文件的扩展名更改为 .xml 并将函数更改为"withExtension: "xml"代码编译正常时,没有错误,我可以看到所有文件数据。

我的目标是不必每次都将我的 .dae 文件格式更改为 .xml。我能做些什么来解决这个问题?

标签: swiftxmlxml-parsingcollada

解决方案


我设法通过在 Xcode 中.dae更改文件的类型来读取文件的内容,Data如下图所示:

在此处输入图像描述

我不知道这是否是适合您需求的解决方法,但我希望它有所帮助


推荐阅读