为什么我不能使用Swift 4加载Collada文件?

时间:2018-09-03 21:07:50

标签: swift xml xml-parsing 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。我该怎么做才能解决此问题?

1 个答案:

答案 0 :(得分:1)

我设法通过在Xcode中将ViewController文件的类型更改为.dae来读取文件的内容,如以下屏幕快照所示:

enter image description here

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