NSString retainCount的一个非常有意思的问题._移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > NSString retainCount的一个非常有意思的问题.

NSString retainCount的一个非常有意思的问题.

 2011/1/10 9:44:53  jinchishuxue  http://jinchishuxue.javaeye.com  我要评论(1)
  • 摘要:一直以来发现对copy和retain的区别还是觉得有点糊涂,,今天晚上花时间来研究这个问题.最后问题是解决了,但是发现了个特别有意思的问题.看下面,NSString*str=[NSStringstringWithString:@"helloworld"];[strretain];NSLog(@"strretaincount=%u",[strretainCount]);我想通过上面的代码看看retain后的str这个变量的retainCount,但是我发现不管有没有retainstr,,结果总是
  • 标签:一个 问题

一直以来发现对copy和retain的区别还是觉得有点糊涂,,今天晚上花时间来研究这个问题.

最后问题是解决了,但是发现了个特别有意思的问题.看下面,

?

??? NSString *str = [NSString stringWithString:@" hello world"];
??? [str retain];
??? NSLog(@"str retain count = %u",[str retainCount]);

?

我想通过上面的代码看看retain后的str这个变量的retainCount,但是我发现不管有没有retain str,,结果总是: 2147483647

为什么呢??

第一反应, 2147483647这个数应该是 UINT_MAX ( Maximum value an `unsigned int'),但是为什么是它呢?

?

google了一下,有很多说法,比如

http://stackoverflow.com/questions/1390334/nsstring-retain-count

http://stackoverflow.com/questions/403112/objective-c-nsstring-property-retain-count-oddity

?

给出你的答案吧.

上一篇: android 下一篇: retain和copy的区别
    网友 2012/4/10 11:25:17 发表

    原因很明显:NSString的retaincount为-1

发表评论
用户名: 匿名