为什么我不能使用 Swift 4 加载 Collada 文件?
Why can't I load a Collada file using Swift 4?
我正在构建一个游戏引擎,并想为 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" 时,我才能看到错误消息 "Document is empty"
func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error){
print(parseError) //result: Document is empty
}
这才是真正让我困惑的地方!
当我将文件扩展名更改为 .xml 并将函数更改为 "withExtension: "xml"
时,代码编译正常,没有错误,我可以看到所有文件数据。
我的目标是不必每次都将 .dae 文件格式更改为 .xml。我该怎么做才能解决这个问题?
我通过将 Xcode 中的类型更改为 Data
来读取 .dae
文件的内容,如以下屏幕截图所示:
我不知道这是否适合您的需要,但我希望它能有所帮助
我正在构建一个游戏引擎,并想为 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" 时,我才能看到错误消息 "Document is empty"
func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error){
print(parseError) //result: Document is empty
}
这才是真正让我困惑的地方!
当我将文件扩展名更改为 .xml 并将函数更改为 "withExtension: "xml"
时,代码编译正常,没有错误,我可以看到所有文件数据。
我的目标是不必每次都将 .dae 文件格式更改为 .xml。我该怎么做才能解决这个问题?
我通过将 Xcode 中的类型更改为 Data
来读取 .dae
文件的内容,如以下屏幕截图所示:
我不知道这是否适合您的需要,但我希望它能有所帮助