2

我建立了一個應用程序,一年多前,它爲用戶提供照片共享和視頻共享。直到幾個星期前,我推出了一項新功能:沒有任何問題的情況下運行:只有當WiFi可用時才標記視頻上傳的可能性:視頻設置爲使用帶NSURLSessionConfiguration的NSURLSession,其中allowedCellular設置爲NO 。在WiFi上傳時出現NSURLSession錯誤:NSURLErrorDomain代碼= -999

大多數時間它工作正常:

  • 我設置視頻是在WiFi的份額,而我通過3G/4G連接
  • 一旦我連接到WiFi網絡的視頻上傳沒有問題

但是,有些用戶在連接到WiFi後沒有上傳視頻。我從他們的一些日誌,每當您連接到無線網絡,出於某種原因NSURLSession使委託調用我可以看到一個錯誤:

- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error 

,出現以下錯誤:

Error: Error Domain=NSURLErrorDomain Code=-999 "(null)" UserInfo={NSErrorFailingURLStringKey=https://my-videos-bucket.s3.amazonaws.com/4074196678138134606/F17F7308-2810-4325-A5AF-BB8FFC093AC6.mov, NSURLErrorBackgroundTaskCancelledReasonKey=0, NSErrorFailingURLKey=https://my-videos-bucket.s3.amazonaws.com/4074196678138134606/F17F7308-2810-4325-A5AF-BB8FFC093AC6.mov} 

任何想法?它可能是服務器的問題嗎?奇怪的是,我不能重現它,也不明白失敗的原因

在此先感謝!通常,當您的應用程序取消發生

+0

似乎任務被另一個任務取消。 -999用於NSURLErrorCancelled。 –

+0

把你的iPhone帶到星巴克,看看你是否能重現這個問題。用戶可能會遇到強制網絡。 – gnasher729

回答

0

一個999錯誤的請求或者明確取消任務本身或無效(或可能釋放),包含它的會話。

但是,在後臺下載的情況下,框架提供了更多信息。您會注意到字典密鑰NSURLErrorBackgroundTaskCancelledReasonKey)的值爲0.如果您在文檔中查看該內容,則會發現這與NSURLErrorCancelledReasonUserForceQuitApplication一致。

換句話說,該請求被取消,因爲用戶明確地雙擊主頁按鈕並向上滑動終止您的應用程序。後臺下載被自動取消。

有關更多信息,請參閱NSURLSession Class Reference

相關問題