2016-05-16 2 views
1

Я пытаюсь загрузить видео РазбираемАнализировать Video Upload - Фатальная ошибка: неожиданно нашли ноль в то время как разворачивание необязательное значение

Если я просто пытаюсь загрузить видео, как так:

let videoData = NSData(contentsOfURL: url) 
let videoFile = PFFile(name: "video.mov", data: videoData) 
videoUploadObject["Video"] = videoFile 

I получит ошибку. Я попытался удалить это, выполнив что-то вроде следующего.

Main.sharedMain.userVideoOutputURL 

возвращается:

file:///private/var/mobile/Containers/Data/Application/3B78A154-4340-432B-817A-2857EBA8064A/tmp/video.mov 

Вот мой полный код:

let url = Main.sharedMain.userVideoOutputURL! 

    if let videoData = NSData(contentsOfURL: url) { 

     let videoFile = PFFile(name: "video.mov", data: videoData) 
     videoUploadObject["Video"] = videoFile 


     print("Video File \(videoFile)") 


    } else { 
     print("Else") 
    } 

Else всегда отпечатанные? Что я могу сделать, чтобы исправить это? Спасибо!

+0

Я не понимаю, как вы могли бы получить 'Else' печататься _AND_ ошибку' Фатальная ошибка: неожиданно нашли ноль в то время как разворачивание Факультативный value' брошено, используя только код, который вы вывешенный. – paulvs

+0

@paulvs Извините! Я обновил свой вопрос! – Nicholas

+1

Путь выглядит неправильно, он должен быть абсолютным путем, например 'file: /// Users/paulvs/.....'. Все указывает на неправильный путь или имя файла, 'NSData (contentsOfURL:)' возвращает 'nil '. – paulvs

ответ

1

URL-адрес выглядит хорошо (iOS не использует «/ User/blah/blah/blah» для хранения приложений).

Моей первой мыслью было проверить правильность записи данных. NSData имеет метод writeToFile: options:, который возвращает bool. Это вернет false, если запись не сработала, а также выбросить ошибку, которая должна предоставить вам дополнительную информацию.

let url = <YOUR_URL> 
do { 
    // put your options in here 
    try data.writeToURL(url, options: NSDataWritingOptions.DataWritingAtomic) 
} catch _ { 
    print(error.localizedDescription) 
} 

Если писание удалось, то вы хотите, чтобы попытаться загрузить данные с помощью «contentsWithUrl: опции:». Это также вызывает ошибку, если она терпит неудачу, и поэтому, используя свойство «localisedDescription» объекта брошенной ошибки, вы должны быть в состоянии понять, почему он не загружается.

let url = <YOUR_URL> 
var data: NSData? = nil 
do { 
    // put your options in here 
    try data = NSData(contentsOfURL: url, options: NSDataReadingOptions.DataReadingUncached) 
} catch _ { 
    print(error.localizedDescription) 
} 

Надежда, что помогает :)

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

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