MRC

MRC

关于NSString,retainCount为-1

C方法中含有Copy的方法名, 都要释放 例如CFRealse(ref)

字符串常量,因为one
为字符串常量,系统不会回收,也不会对其作引用计数,即使我们对test1

做任何retain或release。

NSObject *obj = [[NSObject alloc] init];

ojb 的 引用计数为 1 (默认,相当于retain)

[obj retain];    引用计数+1

[obj release];    引用计数-1

[obj autorelease];  NSRunLoop运行完毕之后引用计数就会自动-1

对于对象属性

@interface MRCObject ()

@property (nonatomic, strong) MyObject *myObj;

@end

在没有被赋值时, 引用计数为0

如果是:self.myObj = [[MyObject alloc] init];

在这一句之后对象的引用计数为2

如果是:self.myObj = [[[MyObject alloc] init] retain];

在这一句之后对象引用计数为3

相当于:

MyObject *obj = [[MyObject alloc] init];  //+1

self.myObj = obj; // + 1

[self.myObj retain];// +1    共3

// MRC setter

- (void)setName:(NSString *)name
{
[_name release];
_name = [name retain];
}
上一篇:Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式


下一篇:Android随笔之——Android广播机制Broadcast详解