NSBundle错误Xcode 8 [重复]

Posted

技术标签:

【中文标题】NSBundle错误Xcode 8 [重复]【英文标题】:NSBundle error Xcode 8 [duplicate] 【发布时间】:2017-01-06 17:05:26 【问题描述】:

我正在在线学习初学者游戏教程,并且我将声音文件链接到几个按钮。

这是它的代码:

let soundFilePath = NSBundle.mainBundle().pathForResource("1", ofType: "wav")
let soundFileURL = NSURL(fileIRLWithPath: soundFilePath!)

不幸的是,“NSBundle”以红色突出显示,上面写着“用 Bundle 替换 NSBundle”。我做到了,但后来我得到了“mainBundle”错误等等。

我正在使用的教程是使用 Xcode 7.3+ 我正在使用 Xcode 8+,所以我确定这是问题所在。有没有办法可以重写代码以使其正常工作?

谢谢。

【问题讨论】:

虽然看起来不像,但目标实际上是删除 NS 前缀。 【参考方案1】:

在 Swift 3 中,试试这个:

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

【讨论】:

您好,非常感谢! 不客气。请记住,如果有效,您应该将答案标记为正确。 完成!再次感谢!【参考方案2】:

在 Swift 3 中,许多 Foundation 类已转换为原生 Swift 结构(缺少 NS 前缀)。好处是显着减少了代码并更好地符合 Swift 值类型语义。

如果您仍然需要 URL,请使用 Bundle 的 URL 相关 API

let soundFileURL = Bundle.main.url(forResource:"1", withExtension: "wav")

不幸的是,似乎只有少数在线教程的作者知道:-/

【讨论】:

你好,我也试过你的,它的工作,也少编码。

以上是关于NSBundle错误Xcode 8 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

NSBundle 无法访问静态库 java 脚本文件路径

在 iOS 中获取资产文件的路径:缺少 NSBundle [重复]

无法在包中加载 NIB:'NSBundle 错误

在Xcode 8中通过一些错误运行项目后[重复]

出现错误 CGPathAddPath 不可用:使用 addPath(_:transform) 使用 Xcode 8.0 [重复]

Xcode 11 在捆绑包 NSBundle 中找不到名为“Main”的情节提要