有时候我们在下拉加载或者上拉刷新的时候,退出了当前的控制器,所以导致请求完后的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
}
}