改定履历:
2012-05-22------------------新建文本文档
正文
本文原文地址
iOS自动引用计数
● 自动引用计数(ARC)去除了需要程序依赖retain和release手动管理内存的需求.
● 不再需要调用retain,release和autorelease
● 不能显示的调用delloc,或实现retain,release,retainCount或autorelease.
● 如果你实现了dealloc,不需要用release去释放对象,也不需要调用[super dealloc],因为这些都是自动完成的.
● 使用@autoreleasepool来标记autorelease程序块
main.m
@autoreleasepool
{
...
}
● 编译器将会自动产生引用计数代码.
1. 使用ARC时,用新的property和attributes
@property(strong) MyClass *obj;
● 和下面不使用ARC时的例子一致:
@property(retain) MyClass *obj;
2. 在ARC中使用弱引用
@property(weak) MyClass *delegate;
● 和下面的例子一致
@property(assign) MyClass *delegate;
● 除非MyClass的实例被回收,上面的delegate将被置为nil
3. 按如下方式声明一个弱引用:
NSString __weak *string = ...