为什么保留负值计数? [重复](Why retain count in negative val

2019-07-19 00:00发布

可能重复:
NSString的保留计数

有没有可能是任何物体在负值其保留计数

我有此代码

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

这将返回保留计数 -1。

为什么会这样?

还我已经做了这样的

NSString *str = [[NSString alloc] init]

仍然在其返回负值保留计数

这是如何发生的?

请帮助了解这件事情!!!!!

Answer 1:

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

(出于性能的考虑,不可变的常量字符串,复制时,返回self 。如果你比较指针。 @""[[NSString alloc] initWithString:@""]他们将是平等的。)



文章来源: Why retain count in negative value? [duplicate]