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