4

可能重复:
NSString 保留计数

是否有可能任何对象的保留计数为负值?

我有这个代码

NSString *str = [[NSString alloc] initWithString:@"Hello World"];
NSLog(@"String Retain Count: %i", [str retainCount]);

这将返回保留计数-1。

为什么会这样?

我也这样做过

NSString *str = [[NSString alloc] init]

仍然在保留计数中返回负值。

这是怎么回事?

请帮助理解这件事!!!!

4

1 回答 1

6

retainCount不返回对象的引用计数。- 它返回无关的废话。

(出于性能原因,不可变的常量字符串在复制时返回self。如果将指针与@""and进行比较[[NSString alloc] initWithString:@""],它们将相等。)

于 2013-01-30T10:07:46.377 回答