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

Posted

技术标签:

【中文标题】为啥我不能使用 Swift 4 加载 Collada 文件?【英文标题】:Why can't I load a Collada file using Swift 4?为什么我不能使用 Swift 4 加载 Collada 文件? 【发布时间】:2019-02-08 21:24:03 【问题描述】:

我正在构建一个游戏引擎,并希望为 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】:

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

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

【讨论】:

工作就像一个魅力!谢谢你:)

以上是关于为啥我不能使用 Swift 4 加载 Collada 文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能在 Swift 的 reduce 中正确划分整数?

为啥我不能在我的 Swift iOS 应用程序中使用 CIFilter 将我的图像反转回原始图像

为啥 Button SubView 不会在 swift 4 中回到后面?

为啥我不能在 Swift 中使用 let in 协议?

为啥视频没有播放,只在 swift 中显示加载程序

为啥我不能在 Swift 3 中使用 JTAppleCalendar Pod 文件 JTAppleCell?