Кажется, я не могу преобразовать NSURL в NSData. NSURL появляется при распечатке, но затем, когда я пытаюсь преобразовать его в NSData, переменная audioData продолжает возвращать nil.
func mediaPicker(mediaPicker: MPMediaPickerController!, didPickMediaItems mediaItemCollection: MPMediaItemCollection!)
{
selectedSong = mediaItemCollection.items[0] as MPMediaItem
songUrl = selectedSong.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL
println("\(songUrl)")
audioData = NSData(contentsOfURL: songUrl) as NSData
println("\(audioData)")
}
Отредактированный код для обнаружения ошибки
songUrl - это URL-адрес песни, находящейся в моей библиотеке iPod
var errorPointer:NSErrorPointer!
audioData = NSData(contentsOfURL: songUrl, options: NSDataReadingOptions.DataReadingMappedAlways, error: errorPointer)
if audioData == nil
{
println("\(errorPointer)")
}
Этот код выводит на консоль сообщение об ошибке: «Неустранимая ошибка: при развертывании необязательного значения неожиданно обнаружен ноль».
Изменить № 2
Используя формат в формате ошибки в ответе ниже, теперь я получаю сообщение об ошибке:
Произошла ошибка: Error Domain = NSCocoaErrorDomain Code = 256 «Операция не может быть завершена. (Ошибка какао 256.)» UserInfo = 0x146f4a90 {NSURL = ipod-library: //item/item.m4a? Id = 3210273692689505570}
NSErrorPointer()
в вызовеcontentsOfURL
. Объявите его снаружи, передайте черезcontentsOfURL
в качестве параметра и затем распечатайте ошибку, еслиaudioData
вернется к нулю. - person Michael Dautermann   schedule 23.10.2014songUrl
, добавьте это к своему вопросу. - person zaph   schedule 23.10.2014