2016-08-02 106 views
4

我有一個非常大的視頻,我需要大塊這個視頻上傳到Dropbox如何使用NSData處理大文件?

我試圖使用NSData,但由於這個文件太大,我的應用程序總是崩潰,所以我不知道我現在能做什麼。

對於規模較小的視頻,我用這個:

NSData(contentsOfURL: self.newAsset.URL)!.subdataWithRange(NSMakeRange(0, 10000000)) 

,我沒有與任何問題,但是當影片太大,我有一個錯誤:

Cannot allocate memory

所以,我可以做些什麼來分割大型視頻的數據?

回答

0

你應該使用視頻文件的URL使用NSURLSession

- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL; 
2

對於最佳實踐上傳大量數據與NSURLSession去,如果你要實現自定義,否則大量的第三方庫是否有喜歡RESTKitAFNetworking。對於NSURLSession,會話NSURLSession支持三種類型的任務:數據任務,下載任務和上載任務。它也支持後臺上傳/下載。源(apple developer

  • 數據任務使用NSData對象發送和接收數據。數據任務適用於從應用程序到服務器的簡短交互式請求。數據任務可以在接收每一條數據後一次將數據返回給您的應用程序,或者通過完成處理程序一次全部返回數據。
  • 下載任務以文件的形式檢索數據,並在應用程序未運行時支持後臺下載。
  • 上傳任務以文件形式發送數據,並在應用程序未運行時支持後臺上傳。

圖像源raywenderlich.com Image Source: