【发布时间】:2012-03-22 12:08:19
【问题描述】:
@property (retain) NSString *testString;
self.testString = [[NSString alloc] initWithString:@"aaa"];
[self.testString retain];
self.testString = [NSString stringWithString:@"a"];
[self.testString release];
[self.testString release];
让我们逐行进行:
第 2 行:保留 testString 的计数 = 2
第 3 行:保留 testString 的计数 = 3
第 4 行:保留 testString 的计数 = 1
第 5 行:保留 testString 的计数 = 0
第 6 行:它应该崩溃
即使在 CoreFoundation 中还有其他东西持有 testString,它最终也会消失。但该应用永远不会因此而崩溃。
谁能解释一下?谢谢!
【问题讨论】:
-
与您的问题没有直接关系,但为什么
[self retain];会增加testString的保留计数? -
@rokjarc:这是一个错字,已修复。谢谢=)
标签: ios objective-c memory-management