【问题标题】:NSBundle error Xcode 8 [duplicate]NSBundle错误Xcode 8 [重复]
【发布时间】: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 前缀。

标签: swift3 nsbundle


【解决方案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")

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

【讨论】:

  • 你好,我也试过你的,它的工作,也少编码。
猜你喜欢
  • 1970-01-01
  • 2015-09-04
  • 1970-01-01
  • 2017-01-15
  • 2017-02-08
  • 2017-02-27
  • 2014-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多