内存管理高级
2015-12-03 22:48
183 查看
dealloc是NSObject的一个实例方法,与alloc对应,用于回收开辟的内存空间,这个方法在对象引用计数为0是,有系统自动调用。通常我们在dealloc中释放类的实例变量。
dealloc的使用:
- (void) dealloc{
[_name release];
setter方法泄露的实例变量
[super dealloc];
}
便利构造器的内存管理:
+(id)personWithName:(NSString *)name{
Person *p =[ [Person alloc]initWithName:name];
return [p autorelease];
只是解决的完美方案,既不会内存泄露,也不会产生野指针。
}
MRC中:
assign:用于非对象类型,即整型、浮点型等基本对象类型。(用于代理)
copy:引用计数不加1,将内容拷贝一份到另一个内存空间。(NSString 和block语法 用)
retain:引用计数加1,指针指向同一块内存。
ARC中:
strong:即MRC中的retain
weak:用于代理(delegate)
copy:和MRC中的一样
assign:和MRC的一样
dealloc的使用:
- (void) dealloc{
[_name release];
setter方法泄露的实例变量
[super dealloc];
}
便利构造器的内存管理:
+(id)personWithName:(NSString *)name{
Person *p =[ [Person alloc]initWithName:name];
return [p autorelease];
只是解决的完美方案,既不会内存泄露,也不会产生野指针。
}
MRC中:
assign:用于非对象类型,即整型、浮点型等基本对象类型。(用于代理)
copy:引用计数不加1,将内容拷贝一份到另一个内存空间。(NSString 和block语法 用)
retain:引用计数加1,指针指向同一块内存。
ARC中:
strong:即MRC中的retain
weak:用于代理(delegate)
copy:和MRC中的一样
assign:和MRC的一样
相关文章推荐
- Android中向webview注入js代码
- API--File操作(1)
- 按钮OnClick实现的三种方法
- Eclipse的快捷键一览
- FPGA自学之路1--软件没有USB Blaster选项
- 敲-PHP与MySQL,JSON
- JS之This篇-菜鸟的福利
- 陈平:七十回首清苦科研路
- Market Guide for Cloud Access Security Brokers
- 随意细解:UI -- 网络编程
- TreeGrid( 树形表格)
- “南大软院大神养成计划“_第十八天的学习“
- leetcode-- Intersection of Two Linked Lists -- 重点
- c_7: c语言函数
- 从本地上传到hdfs上出现异常
- 旧瓶装新酒的抽象工厂
- IOS ---设置导航栏
- 《C++标准程序库》笔记之二
- Android四大视图动画图文详解
- Linux使用笔记: 设置Samba服务器中新建文件/目录的权限