Bundle.main.path(forResource:对于名称中带有重音字符的文件始终为nil.这是错误吗



是的,我在目标的捆绑包中包含了该文件。

但是这条线

let path = Bundle.main.path(forResource: fileName, ofType: "wav")

如果fileName在文件名中有重音字符,如,则始终为零

autenticaçãoemcartório
armação

有办法解决这个问题吗?

你能确认这是一个错误吗?

我希望您的文件名不是以相同的Unicode形式编码的。例如,小写小写字母O+组合ACUTE ACCENT与拉丁小写字母O WITH ACUTE不同,尽管它们看起来完全相同。根据文件名的创建方式,可能会出现不匹配的情况;等于";以Bundle平等对待的方式。(它们可能像Swift一样相等。String对待相等,但仍然不像Bundle对待相等那样相等。(

请注意,设备上的文件系统与模拟器上的文件文件系统不同,因此在一个地方工作的东西可能在另一个地方不工作。

要探索这一点,请首先使用FileManager枚举目录中的文件名。然后检查它们的unicodeScalars属性,并将其与您要查找的字符串进行比较。

特别要怀疑不是在苹果平台上创建和命名的文件,因为不同的平台可能有不同的非ASCII字符编码默认方式。


根据您的评论,您的文件名不是UTF-8编码的。它们看起来像Latin1(可能是在Windows上创建的?(

相关内容

  • 没有找到相关文章

最新更新