-1
NSString* nsString=[[NSString alloc]initWithString:@"nsString"];
NSLog(@"nsString RetainCount:%li",[nsString retainCount]);

相应的结果是:

 2013-03-04 11:18:03.291 ARC[655:303] nsString RetainCount:-1 

另外:如果使用 init 一个 NSMutableString 实例;它返回 1;

4

1 回答 1

2

http://whentouseretaincount.com

NSStrings在编译时生成的不可变是单例。因此,他们根本不retain/release跳舞。

NSString检测何时使用此类初始化并直接返回字符串。您会发现该alloc代码中返回的对象与调用返回的对象不同init...

于 2013-03-04T15:05:33.697 回答