这是我的代码:
NSLog(@"rc: %d", [_pagesButton retainCount]);
NSMutableArray *anArray = [[NSMutableArray alloc] initWithArray:_toolbar.items];
NSLog(@"rc: %d", [_pagesButton retainCount]);
[anArray removeObjectAtIndex:2];
NSLog(@"rc: %d", [_pagesButton retainCount]);
[_toolbar setItems:anArray animated:YES];
NSLog(@"rc: %d", [_pagesButton retainCount]);
[anArray release];
NSLog(@"rc: %d", [_pagesButton retainCount]);
这是输出:
rc:2
rc:3
rc:2
rc:3
rc:3
第一个rc是2,因为_pagesButton已由此变量和toolbar.items数组保留。在我创建anArray变量之后,保留计数为3,然后我从anArray变量中删除_pagesButton,因此保留计数变为2.然后我设置_toolbar.items并且保留计数变为3.但为什么???当我释放anArray变量时,零售额仍为3.为什么?请帮帮我一点。
答案 0 :(得分:2)
这个记忆问题已被问过很多次了。 希望这些链接能够回答您的问题。 query regarding NSString object and memory management