ios:保留2147483647的计数?
可能的重复项:ios:保留2147483647的计数?,ios,count,retain,Ios,Count,Retain,可能的重复项: 请查看以下代码: NSString* testString = [[NSString alloc] initWithString:@"Test"]; NSLog(@"[testString retainCount] = %d", [testString retainCount] ); NSMutableArray* ma = [[NSMutableArray alloc] init]; [ma insertObject:testString atIndex:0]; [test
请查看以下代码:
NSString* testString = [[NSString alloc] initWithString:@"Test"];
NSLog(@"[testString retainCount] = %d", [testString retainCount] );
NSMutableArray* ma = [[NSMutableArray alloc] init];
[ma insertObject:testString atIndex:0];
[testString release];
NSLog(@"%@", [ma objectAtIndex:0]);
这是控制台上的输出:
[testString retainCount] = 2147483647
Test
这怎么会发生?我以为不是2147483647 使用字符串文本启动NSString对象,会发生以下两种情况:
有了以上提到的所有内容,您仍然应该按照内存管理规则使用字符串对象(当您使用alloc/init创建它时,您应该释放它),您会很好的对于重新计数的结果,您只能有两个期望: 1) 它大于1。你无法预测它的实际数量,因为你不知道还有谁在使用它。你不知道别人是怎么用的。这不是一个你应该关心的数字 2) 人们会告诉你不要使用它。因为你不应该。使用这些规则来平衡保留和释放。不要使用重新计数。它会让你感到沮丧和困惑,毫无价值。无论如何。。。及