2016-10-14 5 views
0

Я получаю сообщение об ошибке при попытке получить путь к аудиофайлу, который у меня есть.Ошибка вызвана попыткой получить Bundle URL

let path = Bundle.main.path(forResource: "SaveALife", ofType: "mp3")! 

В консоли я получаю это:

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 

Любая помощь? Благодарю.

+0

Похоже, что это не находит его в вашем комплекте. Вы дважды проверили и подтвердили, что это на самом деле часть этой цели? Кроме того, есть право на капитализацию? Устройства чувствительны к регистру. – Rob

+0

Попробуйте 'Bundle.main.url (forResource:« SaveALife », withExtension:« mp3 »)' –

+0

Возможный дубликат [Получить URL-адрес ресурса из определенного пути проекта] (http://stackoverflow.com/questions/33591305/get- ресурсы гиперссылка-из-специфичной для проекта траектории) –

ответ

0

Я поеду с @Rob, вы должны были неправильно указать имя ресурса или файл не существует в комплекте. И предоставляя «!» вы заставляете получать строковый путь, но поскольку файл не существует Или из-за несоответствия орфографии файл не найден в пакете, обратный путь будет равен нулю, а из-за «!» он пытается развернуть нуль, что приводит к сбою.

Таким образом, решение удаляет "!" как показано ниже

let path = Bundle.main.path(forResource: "SaveALife", ofType: "mp3") 

Или же, если вы определенно хотите использовать «!», Вы должны дать правильный путь ресурсов и убедитесь, что ресурс должен быть там в комплекте.

Надеюсь, это поможет.

Счастливое кодирование ...

1

Убедитесь SaveALife.mp3 должен быть в вашем пачке. Также, когда вы перетаскиваете файл, пожалуйста, проверьте ресурсы пакета.