【发布时间】:2012-08-24 07:49:07
【问题描述】:
我正在尝试查找我的应用程序中存在的内存泄漏。当应用程序加载时,我会立即遇到类似于仪器中的内存泄漏
我该如何调试呢?无论我运行我的应用程序多长时间或做什么,它都不会自我复制,只有在应用程序加载时。
这是我在委托中的代码
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
tabBarController = [[UITabBarController alloc] init];
search = [[iPhoneView alloc] initWithNibName:@"iPhoneView" bundle:nil];
homeNavigationController = [[UINavigationController alloc] initWithRootViewController:search];
favouritesNavigationController = [[UINavigationController alloc] init];
favoritesViewController = [[FavoritesViewController alloc]init];
[favouritesNavigationController pushViewController:favoritesViewController animated:NO];
aboutUsViewController =[[AboutUsViewController alloc] init];
UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"toolbox" image:[UIImage imageNamed:@"aboutus"] tag:0];
aboutUsViewController.tabBarItem = item;
[item release];
UITabBarItem *item2 = [[UITabBarItem alloc] initWithTitle:@"αγαπημένα" image:[UIImage imageNamed:@"favorites"] tag:0];
favouritesNavigationController.tabBarItem = item2;
[item2 release];
NSArray *tabBarControllerCollection = [NSArray arrayWithObjects:homeNavigationController,favouritesNavigationController,aboutUsViewController,nil];
[tabBarController setViewControllers:tabBarControllerCollection animated:NO];
[window setRootViewController:tabBarController];
[tabBarControllerCollection release]; //added that for the leaks
//[window addSubview:tabBarController.view]; for the warning thing about window and root view controller
[window makeKeyAndVisible];
}
- (void)dealloc {
[tabBarController release];
[search release];
[favoritesViewController release];
[favouritesNavigationController release];
[aboutUsViewController release];
[window release];
[super dealloc];
}
【问题讨论】:
-
它也可能在您在那里创建的视图控制器的初始化代码中的任何位置,这可能需要检查相当多的代码:) 也许有人有一个好主意来系统地解决这个问题,我也会对此感兴趣
-
你用过ARC吗?不推荐使用“- (void)applicationDidFinishLaunching:(UIApplication *)application”方法请使用:“- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:”(NSDictionary *)launchOptions
-
不,我没有使用 ARC
-
是的,我知道它可能在任何地方,但泄漏很快就会出现,而且总是同时出现,所以我认为它应该在委托或某事上。
-
您是在模拟器还是在设备上分析应用程序?您的部署目标是什么? 5.0? 5.1?
标签: iphone objective-c ios memory-leaks