2015-10-27 6 views
-4

Я пробовал некоторые основные вещи, такие как воспроизведение аудио.Неустранимая ошибка: неожиданно найден nil во время разворачивания Необязательное значение

В самом начале, когда я запустил проект, я получил сообщение об ошибке, ошибка не появляется в контроллере представления, но сразу появляется, когда я запускаю проект.

fatal error: unexpectedly found nil while unwrapping an Optional value

Мой код:

var buttonAudioURL = try? NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Sound", ofType: "m4a")!) 
+3

Вы читали документацию? Это все в ошибке. Вы использовали '!' Значение 'nil', и это не разрешено в Swift (см. Часть NSBundle). – Arc676

+0

Конвенция о СО является, если вы нашли ответ полезным, повысьте его; если вы нашли ответ, который помог вам решить вашу проблему, отметьте его как «принятый» (кнопка «галочка» под кнопкой «голосов»). Вы этого никогда не делали - несправедливо. :) – Moritz

ответ

2

С NSBundle.mainBundle().pathForResource("Sound", ofType: "m4a")! вы форсирования разворачивания Факультативного возвращаемый NSBundle (обратите внимание на ! в конце).

Так что, если этот ресурс «Sound.m4a» недоступен, похоже, что это произойдет, приложение выйдет из строя.

Вам нужно две вещи: убедитесь, что ресурс находится в комплекте, и используйте безопасную разворачивание и обработку ошибок вместо принудительной разворачивания.

Я настоятельно рекомендую вам ознакомиться с nice docs Apple предоставила нам, все это подробно объясняется.

Также обратите внимание, что NSURL не выбрасывает, поэтому вам не нужно использовать try.

Update

Вот пример того, что я говорю о:

if let soundResourceURL = NSBundle.mainBundle().pathForResource("Sound", ofType: "m4a") { 
    let buttonAudioURL = NSURL(fileURLWithPath: soundResourceURL) 
    // use buttonAudioURL here 
} else { 
    print("Unable to find Sound.m4a") 
} 
+1

так как я могу решить проблему @eric D –

+0

Обновлен мой ответ. – Moritz

 Смежные вопросы

  • Нет связанных вопросов^_^