2017-04-02 58 views
0

當我有一個活動的URLSessionTask並且用戶按下後退按鈕並且視圖控制器已被授權時,我的Swift 3 iOS應用程序發生崩潰。我在後退按鈕的urlsessiontask上調用cancel方法,並且當時沒有發生崩潰,但是當用戶返回視圖控制器時,應用程序崩潰。如果用戶允許URL會話任務完成,則不會崩潰。有誰知道我能做些什麼來防止墜毀?我使用iOS 10,Swift 3,Xcode 8.預先感謝。如何防止當uiviewcontroller被摧毀時發生崩潰,並且存在活動的urlsession任務

+1

在開始處添加回調關閉'[weak self]',並詢問self是否爲零 –

回答

1

如果下載完成時視圖控制器可能不在身邊,請勿將視圖控制器設置爲URL會話的委託。

這裏有一個解決方案:

創建DownloadManager單那就是URL會議的代表,保存文件到磁盤,一旦下載完成,記錄了有關文件的信息已經被下載,然後通知委託,使用弱委託屬性。 (有人認爲單身人士是所有邪惡的根源,絕不應該被使用,我不是那種人,我認爲一個應用程序範圍的下載管理器對於單身人士來說是一個很好的用例。 )

相關問題