关于NSString,retainCount为-1
2013-09-17 18:29
411 查看
/*
字符串常量,因为one
为字符串常量,系统不会回收,也不会对其作引用计数,即使我们对test1
做任何retain或release。
*/
/*
使用stringWithFormat创建NSString为变量,系统会引用计数
*/
/*
stringWithString
这个方法比较特别:它的retainCount取决于后面跟的string对象.
运行完你会发现test4的计数器为2,这里很好理解,这个方法生成的只是一个对另一个对象的引用。一个对象实例,一次的stringWithString,一次stringWithFormat它的retainCount为2
*/
结果:
字符串常量,因为one
为字符串常量,系统不会回收,也不会对其作引用计数,即使我们对test1
做任何retain或release。
*/
NSString *test1 = [[NSString alloc] initWithString:@"one"]; NSLog(@"test1 .......%ld",(unsigned long)[test1 retainCount]);
/*
使用stringWithFormat创建NSString为变量,系统会引用计数
*/
NSString *test2 = [[NSString alloc] initWithFormat:@"one%d",1]; NSLog(@"test2 .......%ld", (unsigned long)[test2 retainCount]);
/*
stringWithString
这个方法比较特别:它的retainCount取决于后面跟的string对象.
运行完你会发现test4的计数器为2,这里很好理解,这个方法生成的只是一个对另一个对象的引用。一个对象实例,一次的stringWithString,一次stringWithFormat它的retainCount为2
*/
NSString *test3 = [NSString stringWithString:@"one"]; NSString *test4 = [NSString stringWithString:[NSString stringWithFormat:@"test,%d",1]]; NSLog(@"test3 .......%ld",(unsigned long)[test3 retainCount]); NSLog(@"test4 .......%ld",(unsigned long)[test4 retainCount]);
结果:
相关文章推荐
- 关于NSString和NSMutableString的retainCount
- IOS开发(41)之关于NSString和NSMutableString的retainCount
- 关于NSString和NSMutableString的retainCount
- ios中关于NSString 的retainCount和循环引用的处理方式
- 关于NSString和NSMutableString的retainCount
- 关于NSString的retainCount的各种结果原因
- 关于NSString的retainCount的各种结果原因
- 关于OC中NSString类型的 retainCount为-1的情况
- 关于NSString的retainCount的各种结果原因
- 关于retainCount在不同场合输出值不符合预期的分析
- 关于retainCount不准确
- 理解NSString的RetainCount
- 小技巧,关于OC打印指针地址和arc下的retaincount
- NSString的retainCount
- 关于strong retain copy 修饰nsstring
- ios关于retainCount的一些疑问
- 关于 retainCount 的疑问
- 关于release后retainCount还是1的问题
- OC中NSString对象retainCount之谜探索
- NSString的retainCount总是-1