有時候我們在下拉加載或者上拉刷新的時候,退出了當前的控制器,所以導致請求完后的block訪問了野指針。
這個時候,我暫時想到了兩種方案解決:
第一種是ANF里面拿到請求的單例,然后獲取operationQueue執行取消操作。
NetworkTools.shareNetworkTools().operationQueue.cancelAllOperations()
第二種是記錄一個靜態的屬性
viewController.isDeinit = false
在控制器銷毀的時候將屬性改為true
deinit {
ViewController.isDeinit = true
}
然后在回調的時候,直接在請求里面攔截不執行block里面的內容
//偽代碼
NetworkManageTool.PostWithURL(Url, parameters:
nil, success: { [unowned self](json) -> Void in
if ViewController.isDeinit == true {
return
}
}