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