我已经以编程方式创建了UITabBarController,就像这样
mTabBarController = [[UITabBarController alloc] init];
...
NSLog(@"The ref count is : %d", [tabBarItems retainCount]);
mTabBarController.viewControllers = tabBarItems;
NSLog(@"The ref count is : %d", [tabBarItems retainCount]);
[tabBarItems release];
NSLog(@"The ref count is : %d", [tabBarItems retainCount]);
还要像这样在dealloc中释放mTabBarController,
- (void)dealloc {
[mTabBarController release];
...
}
现在的问题是:第一个代码段的输出是
2011-11-01 17:48:26.554 PostCardPrinter[12176:207] The ref count is : 1
2011-11-01 17:48:26.561 PostCardPrinter[12176:207] The ref count is : 1
2011-11-01 17:48:26.561 PostCardPrinter[12176:207] The ref count is : 1
我会发生内存泄漏吗?为什么总是打印1?
如果保留tabBarItems,则第二个输出应为2。
mTabBarController.viewControllers = tabBarItems;
复制数组项并保留每个数组项,那么,第3个输出应该b 2对吗?
我会弄错吗?
最佳答案
保留计数错误:When to use -retainCount?
简而言之:您不能保证retainCount
会返回合理的值。
关于ios - 我会发生内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7967616/