2016-05-24 4 views
0

У меня проблема.Ошибка NSURL - Файл не существует

Когда я print("Video URL: \(self.videoUrl.description)") я получаю это на выходе:

Video URL: file:///var/mobile/Containers/Data/Application/92BDA035-131C-4FD2-A176-25F77C1D295B/Documents/video.mp4 

Я использую это, чтобы загрузить файл на сервер:

func uploadVideo(){ 
     let currentUploads = PFObject(className: "myClassOne") 
     currentUploads.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in 
      if error == nil{ 
       //**Success saving, now save video.**// 

       currentUploads["userFile"] = try! PFFile(name: "video.mp4", contentsAtPath: self.videoUrl.description) 
       currentUploads.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in 
        if error == nil{ 
         // Take user home 
         print("Successfully uploaded") 
         }) 
        } 
        else{ 
         print(error, terminator: "") 
        } 
       }) 
      } 
      else{ 
       print(error, terminator: "") 
      } 
     }) 
    } 

Я получаю эту ошибку:

fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=4 "Failed to create PFFile at path 'file:///var/mobile/Containers/Data/Application/92BDA035-131C-4FD2-A176-25F77C1D295B/Documents/video.mp4': file does not exist." UserInfo={NSLocalizedDescription=Failed to create PFFile at path 'file:///var/mobile/Containers/Data/Application/92BDA035-131C-4FD2-A176-25F77C1D295B/Documents/video.mp4': file does not exist.}: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-703.0.18.1/src/swift/stdlib/public/core/ErrorType.swift, line 54

Что не так? Почему я получаю «файл не существует», когда я успешно получаю URL от println? Любые идеи/предложения?

+0

Попробуйте 'LS/вар/мобильный/Контейнеры/Data/Application/92BDA035-131C-4FD2-A176-25F77C1D295B/Документы/video.mp4' – Jeef

+0

ли работа на симулятор? – Jeef

+0

@Jeef Не работает первая ссылка, и я не могу в симуляторе, потому что я использую телефонную камеру для видео и загрузки. –

ответ

0

Использование self.videoUrl.path вместо self.videoUrl.description в вашем выражении try!, следующим образом:.

currentUploads["userFile"] = try! PFFile(name: "video.mp4", contentsAtPath: self.videoUrl.path) 

(videoUrl.description является строковое представление URL, и имеет схему "file://" в самом начале, что делает его неверный путь в контраст, videoUrl.path является строка, которая начинается с "/var/mobile/...".)

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