ios 内存管理
2016-01-20 20:34
302 查看
ARC机制中是否就不存在内存泄漏呢,答案是肯定的.
有的人也许会说ARC中怎么会存在内存泄漏呢,它不是自动管理内存吗?如有疑问请看下面的解说
>>因为当一个对象存入到集合中的时候,默认会保存它的强指针,如果最后不对这个集合进行清空操作,一样会有内存溢出的情况
Person * p = [[Person alloc] init];
NSMutableArray * arr = [[NSMutableArray alloc] init];
[arr addObject:p];
把对象从集合中移除的时候,也会释放掉这个对象的强指针
[arr removeObject:p];
或者[arr removeAllObjects];
而接下来才是重点:
arr = nil;//如果不进行赋值为nil的操作,一样存在内存溢出的现象,赋值为nil系统会对其进行清空所有强指针的操作.
p = nil;
有的人也许会说ARC中怎么会存在内存泄漏呢,它不是自动管理内存吗?如有疑问请看下面的解说
>>因为当一个对象存入到集合中的时候,默认会保存它的强指针,如果最后不对这个集合进行清空操作,一样会有内存溢出的情况
Person * p = [[Person alloc] init];
NSMutableArray * arr = [[NSMutableArray alloc] init];
[arr addObject:p];
把对象从集合中移除的时候,也会释放掉这个对象的强指针
[arr removeObject:p];
或者[arr removeAllObjects];
而接下来才是重点:
arr = nil;//如果不进行赋值为nil的操作,一样存在内存溢出的现象,赋值为nil系统会对其进行清空所有强指针的操作.
p = nil;
相关文章推荐
- iOS使用Charles(青花瓷)抓包并篡改返回数据图文详解
- dispatch_group、dispatch_barrier、基于线程安全的多读单写
- iOS自定义scrollview的滑动停止位置
- ios开发中类方法与self的注意点 与实例方法区别
- iOS多线程之GCD
- 懂DOS终于发挥了一点作用:phoenix bios密码破解
- 在IOS中创建get,set方法
- ios富文本自适应
- iOS实时卡顿监控
- iOS开发之画图板(贝塞尔曲线)
- iOS 支付宝RSA公钥私钥生成
- ios 项目引用全局pch文件
- iOS 上传图片
- iOS @property
- iOS第三方-百度地图地图SDK(一)
- iOS 滑动性能优化
- IOS-设备屏幕及适配方案
- iOS post请求图片Base64编码上传
- ios8以后要自己开启定位权限
- iOS 设备唯一标示