Xcode 6 - SWIFT - 访问数组时出错
Posted
技术标签:
【中文标题】Xcode 6 - SWIFT - 访问数组时出错【英文标题】:Xcode 6 - SWIFT - Error accessing an array 【发布时间】:2014-09-17 06:33:01 【问题描述】:var files = ["Sound1", "Sound2", "Sound3", "Sound4", "Sound5"]
var fileLocation = NSString(string: NSBundle.mainBundle().pathForResource("Sounds/" + files[2] , ofType: "mp3")!)
我正在尝试创建一个播放随机声音的应用,但我收到此错误:
致命错误:在展开可选值时意外发现 nil
如果我指定了我想播放的声音,代码可以正常工作,但是当我尝试访问数组时会崩溃。
PS:完全没有拼写错误。
【问题讨论】:
您确定“Sound3.mp3”存在于“Sounds/”目录中吗?是否检查了创建的.app? 是的,如果我将 '"Sounds/" + files[2]' 替换为 '"Sounds/Sound3" ' 就可以了! 分配后的fileLocation
是什么?
【参考方案1】:
很奇怪的情况,因为我无法重现相同的代码。
作为一般解决方案,如果您使用 pathForResource 的专用重载可能会有所帮助:
NSBundle.mainBundle().pathForResource(files[2], ofType: "mp3", inDirectory: "Sounds")
【讨论】:
删除文件夹名称确实有效,出于某种原因?!,谢谢 Nevs 我不明白为什么这会有所作为。 @ThomasW 我也没有!,每次我得到(!)和(?)的手时都会发生一些奇怪的事情!【参考方案2】:试试这个:
var fileLocation = NSString(string: NSBundle.mainBundle().pathForResource("Sounds/\(files[2])", ofType: "mp3")
【讨论】:
之前这样做过但没有用,完全删除文件夹名称使其工作!以上是关于Xcode 6 - SWIFT - 访问数组时出错的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 IQKeyboardManager 与 Xcode 和 Swift 一起使用时出错
在 Swift 2 Xcode 7 Beta 4 中设置基于位置的提醒时出错
Xcode Swift:使用使用 pod (CocoaPods) 的框架时出错