【发布时间】:2015-06-16 03:41:04
【问题描述】:
下面提到的代码 sn-p 中 NSString 的保留计数是多少?
self.a = @"abcd"; // self.a is a NSString with (nonatomic, Strong) Attributes
NSLog(@"Retain Count of A == %d",(int)[self.a retainCount]);
self.b = self.a;// self.b is a NSString with (nonatomic, Strong) Attributes
NSLog(@"Retain Count of A == %d",(int)[self.a retainCount]);
NSLog(@"Retain Count of B == %d",(int)[self.b retainCount]);
[self.a release];
NSLog(@"Retain Count of A == %d",(int)[self.a retainCount]);
NSLog(@"Retain Count of B == %d",(int)[self.b retainCount]);
//Similarly whats the retain count if:
self.b = [self.a retain];
【问题讨论】:
-
我不需要值只是想知道“保留”是如何工作的?
-
我认为无论如何它应该是
(2^(32 or 64)) - 1aka NSUIntegerMax,因为文字是不朽的。 -
只是想知道“保留”是如何工作的你不会通过查看
retainCount得到它 -
在分配 self.b = self.a 时 self.a 的 RC 会增加 1 吗?或者当我做 self.b = [self.a retain] 时 self.a 的 RC 会增加到 2 吗?
标签: ios retaincount