Swift3 NSBundle错误Xcode 8

Swift3 NSBundle错误Xcode 8,swift3,nsbundle,Swift3,Nsbundle,我正在网上学习一个初学者游戏教程,现在我把一个声音文件链接到几个按钮上 下面是它的代码: let soundFilePath = NSBundle.mainBundle().pathForResource("1", ofType: "wav") let soundFileURL = NSURL(fileIRLWithPath: soundFilePath!) 不幸的是,“NSBundle”以红色突出显示,并显示“用Bundle替换NSBundle”。我这样做了,但随后我得到了“mainBund

我正在网上学习一个初学者游戏教程,现在我把一个声音文件链接到几个按钮上

下面是它的代码:

let soundFilePath = NSBundle.mainBundle().pathForResource("1", ofType: "wav")
let soundFileURL = NSURL(fileIRLWithPath: soundFilePath!)
不幸的是,“NSBundle”以红色突出显示,并显示“用Bundle替换NSBundle”。我这样做了,但随后我得到了“mainBundle”错误等等

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

谢谢。

在Swift 3中,尝试以下方法:

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

在SWIFT 3中,许多基础类已经变成了本地SWIFT结构(缺少NS前缀)。这样做的好处是大大减少了代码,更好地符合Swift值类型语义

由于您仍然需要URL,请使用与URL相关的API
Bundle

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

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

您好,非常感谢您的帮助!不客气。请记住,如果它有效,你应该将答案标记为正确。完成!再次感谢!您好,我也试过您的,效果很好,代码也少了。虽然看起来可能不是这样,但目标是删除
NS
前缀。