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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 中获取资产文件的路径:缺少 NSBundle [重复]
出现错误 CGPathAddPath 不可用:使用 addPath(_:transform) 使用 Xcode 8.0 [重复]