iOS开发-内存管理
2015-11-08 17:46
253 查看
内存管理
管理计算机中的堆内存 ios应用程序出现Crash闪退 90% 以上的原因是内存问题(内存泄露<->内存溢出,过度释放<->野指针异常)
内存管理的方式
垃圾回收(gc) 只有程序运行时才会产生垃圾回收
MRC 人工引用计数
ARC 自动引用计数
MRC 和ARC 内存管理机制是:引用计数为零时自动释放(在编译的时候 ,是编译器的工作)
引用计数
当实例对象被初始化后,设置实例对象中的一个整型变量为1;当实例对象的整型变量为0,实例对象自动释放内存 那么,我们称呼整型变量为引用计数
影响引用计数的方法
(类对象方法)+alloc 将实例对象的引用计数赋值1;
-retain 将实例对象的引用计数加1;
-copy 将实例对象拷贝到新的内存,生成新的对象,赋值为1
-release 将实例对象的引用计数减1,只有经过不断的减1之后,引用计数才会为0
-dealloc 继承来自父类的方法 当对象引用计数为0的时候 由对象自动调用
-autorelease 未来的某一时刻引用计数减1 ,将引用计数
通过autoreleasepool控制release 对象的释放 向一个对象发送autorelease消息
这个对象何时释放,取决于autoreleasepool
引用计数的增加比减少少1,当引用计数降为0之后,不应该在使用这块内存空间
凡是使⽤用了alloc、retain或者copy让内存的引⽤用计数增加了,就需
要使⽤用release或者autorelease让内存的引⽤用计数减少。在⼀段代码内,增加和减少的次数要相等。
遍历构造器本身就有引用计数autorelease 一次 (一定是)
]initWithString: 后面常量字符串 是栈区的
@property(nonatomic,assign)NSString * myString; 可以影响内存过早释放
NSArray * arr = [NSArray array]; 遍历构造器
array
继承关系不是扩展一个类
管理计算机中的堆内存 ios应用程序出现Crash闪退 90% 以上的原因是内存问题(内存泄露<->内存溢出,过度释放<->野指针异常)
内存管理的方式
垃圾回收(gc) 只有程序运行时才会产生垃圾回收
MRC 人工引用计数
ARC 自动引用计数
MRC 和ARC 内存管理机制是:引用计数为零时自动释放(在编译的时候 ,是编译器的工作)
引用计数
当实例对象被初始化后,设置实例对象中的一个整型变量为1;当实例对象的整型变量为0,实例对象自动释放内存 那么,我们称呼整型变量为引用计数
影响引用计数的方法
(类对象方法)+alloc 将实例对象的引用计数赋值1;
-retain 将实例对象的引用计数加1;
-copy 将实例对象拷贝到新的内存,生成新的对象,赋值为1
-release 将实例对象的引用计数减1,只有经过不断的减1之后,引用计数才会为0
-dealloc 继承来自父类的方法 当对象引用计数为0的时候 由对象自动调用
-autorelease 未来的某一时刻引用计数减1 ,将引用计数
通过autoreleasepool控制release 对象的释放 向一个对象发送autorelease消息
这个对象何时释放,取决于autoreleasepool
引用计数的增加比减少少1,当引用计数降为0之后,不应该在使用这块内存空间
凡是使⽤用了alloc、retain或者copy让内存的引⽤用计数增加了,就需
要使⽤用release或者autorelease让内存的引⽤用计数减少。在⼀段代码内,增加和减少的次数要相等。
遍历构造器本身就有引用计数autorelease 一次 (一定是)
]initWithString: 后面常量字符串 是栈区的
@property(nonatomic,assign)NSString * myString; 可以影响内存过早释放
NSArray * arr = [NSArray array]; 遍历构造器
array
继承关系不是扩展一个类
相关文章推荐
- iOS开发-Block语法
- iOS开发-类目、延展、协议
- iOS开发-基本数据类型,对象
- iOS开发-继承
- iOS开发-OC中的实例变量
- iOS开发-前言篇C-指针以、结构体指针、作用域
- iOS开发-前言篇C-结构体
- iOS开发-前言篇C-函数
- ios中AFN的应用
- ios开发-OC的学习
- IOS毛玻璃效果
- iOS开发计算文本尺寸
- nagios配置过程详解
- Nagios部署配置实战
- IOS中的instancetype和id关键字
- ios提交代码到远程仓库
- iOS开发27-iOS 可视化编程-Size Classes
- ios tableView那些事 (十)设置 tableview 的分割线
- IOS-图片操作集合
- ios数据解析