неожиданно обнаружил nil при распаковке необязательного значения с помощью AVAudioPlayer

Так что этот код отлично работает на симуляторах iOS, но не на моем iPad Mini.

    var sound = NSURL(fileURLWithPath:"/Users/Dan/Documents/XCode Code/Colors- Tabbed?/Colors- Tabbed?/Sweg.aiff")
    var audioPlayer = AVAudioPlayer()
    audioPlayer = AVAudioPlayer(contentsOfURL: sound, error: &error)
    var error: NSError?

Я получаю сообщение об ошибке «неожиданно найдено nil при развертывании необязательного значения» в последней строке.


person PugLvr28    schedule 23.11.2014    source источник


Ответы (1)


Похоже, AVAudioPlayer еще не прошел аудит. Он возвращает неявно развернутый необязательный параметр, который может быть nil и, по-видимому, имеется на вашем iPad. (Вероятно, потому что ваш iPad не знает, где находится /Users/Dan/Documents/..., поскольку он находится на вашем компьютере.)

Вы хотите захватить игрока в необязательном значении, чтобы вы могли проверить nil, прежде чем использовать его:

var sound = NSURL(fileURLWithPath:"/Users/Dan/Documents/XCode Code/Colors- Tabbed?/Colors- Tabbed?/Sweg.aiff")
var error: NSError?
var audioPlayer: AVAudioPlayer? = AVAudioPlayer(contentsOfURL: sound, error: &error)

if let audioPlayer = audioPlayer {
    // do things with the audioPlayer
}
person Nate Cook    schedule 23.11.2014
comment
Большое спасибо, вы знаете, как я могу поместить этот файл в свое настоящее приложение, чтобы мой iPad мог его найти? Если да, то я бы назвал это так же? - person PugLvr28; 29.11.2014