首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

高手解答一下,NSString的诡异有关问题

2012-01-20 
高手解答一下,NSString的诡异问题,NSString* s1@ssgsdgsdgsdgNSLog(@%d,[s1 retainCount])//-1NSSt

高手解答一下,NSString的诡异问题,

NSString* s1=@"ssgsdgsdgsdg";

NSLog(@"%d",[s1 retainCount]); //-1

NSString* s2=[s1 copy];


NSLog(@"%d",[s2 retainCount]); //-1


 为什么是-1, 原因是: 字符串存储在 类似C++中的常量区,对吧。  
----------------------------------

但是如下代码如何解释?


NSString* s1=[ [NSString alloc ]init];


NSLog(@"%d", [s1 retainCount]);

结果是-1 ,我没有释放之, 用官话来说, 只要alloc消息了,就成了1 ,为什么为-1 ,解释一下,谢谢。


  NSString* s=[[NSString alloc] initWithString:@" nihao"];

NSLog(@"%@",s);


NSLog(@"%d", [s retainCount]); //-1 也是-1,为什么, 

  [s release];

  NSLog(@"%d", [s retainCount]); //-1






[解决办法]
NSString 是存储在常量区的,它是不会被自动释放。这个和c语言的常量字符串是一样的!
[解决办法]
lz你机器出问题。。。话说这个retaincount本来就不是很准

热点排行