iOS析构崩溃问题
来源:互联网 发布:c语言ansi标准 编辑:程序博客网 时间:2024/06/09 21:49
一、析构与回调问题
对象已经被析构了,对象的成员函数也被销毁了,可是在析构之前回调函数就在进行了,当对象析构完时,回调函数正执行到一半,当访问成员变量的时候,崩溃了。
这该如何解决呢:
1、等待回调执行完毕再析构:
a、启动线程判断是否有回调再执行
b、系统的自动回收机制应该可以:每个回调会将所用到的成员函数retain,回调执行完成后release,当count为0时才销毁。
2、析构之前停止所有回调函数的运行:
a、取消该任务的运行:貌似是不可能的,GCD都不能做到,何况是回调呢
b、回调函数中每次访问成员函数都判断该对象是否被析构,但也不能保证刚判断完,就被析构的情况
二、析构与GCD
对象已经析构了,异步队列却还有任务在运行。GCD没有提供销毁队列的接口,因为给出的接口并不能停止已经加入队列的任务,更不能停止正在执行的任务,所以当队列访问已经被销毁的成员变量,就会导致崩溃问题
解决方案:
1、队列任务运行之前都判断,对象是否被析构。但这样也只能保证析构后,新的任务不被执行,但是正在执行的任务,根本不起作用
2、系统的自动销毁系统应该可以解决,但当我删掉所有销毁代码时,系统的回收却是有问题的,肯定某些地方还是需要销毁的
1 0
- iOS析构崩溃问题
- iOS xib崩溃问题
- iOS问题-崩溃错误
- iOS 应用崩溃问题现状
- iOS 9 通讯录崩溃问题
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS UIWebView播放视频崩溃问题
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS crash 崩溃问题的追踪方法
- iOS 刷新控件下拉刷新崩溃问题
- iOS 9后台定位崩溃问题
- IOS -- 调用deleteRowsAtIndexPaths:withRowAnimation:崩溃的问题
- iOS crash 崩溃问题的追踪方法
- [绍棠] iOS中 iOS10 权限崩溃问题
- iOS 10 由于权限问题导致崩溃
- 正则表达式
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- Handler相关面试题
- 【安卓】旋屏跟随
- mongodb 模糊查询
- iOS析构崩溃问题
- 笔记本F1-F12功能
- 配置MySQL远程连接(win7)
- 紫书习题5-6 uva1595
- scroll view 中嵌套listview gridview 时,listview gridview match_parent 无效
- 第四天 网络 handler
- lzg_ad: 构建通用版本的XPE\WES镜像文件
- 解析XML的 循环节点
- Sublime Text3安装插件