您好,欢迎来到知库网。
搜索
您的当前位置:首页swift网络请求未完成时,控制器已经销毁

swift网络请求未完成时,控制器已经销毁

来源:知库网

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

Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务