Iphone 应用程序加载时出现iOS内存泄漏

Iphone 应用程序加载时出现iOS内存泄漏,iphone,objective-c,ios,memory-leaks,Iphone,Objective C,Ios,Memory Leaks,我正在尝试查找我的应用程序中存在的内存泄漏。当应用程序加载时,我立即得到一个内存泄漏,看起来就像instuments中一样 我如何调试它?无论我运行我的应用程序多长时间或我做什么,它都不会自我复制,只有在应用程序加载时才会复制 这是我在委托中的代码 - (void)applicationDidFinishLaunching:(UIApplication *)application { tabBarController = [[UITabBarController alloc

我正在尝试查找我的应用程序中存在的内存泄漏。当应用程序加载时,我立即得到一个内存泄漏,看起来就像instuments中一样

我如何调试它?无论我运行我的应用程序多长时间或我做什么,它都不会自我复制,只有在应用程序加载时才会复制

这是我在委托中的代码

- (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];
}

释放未释放的homeNavigationController并检查您是否在其他地方丢失。

释放未释放的homeNavigationController并检查您是否在其他地方丢失。

请使用泄漏的呼叫树视图,这将显示问题发生的位置,并帮助您排除故障。还可以尝试使用真实的设备,因为模拟器可能会显示误报


请使用泄漏的呼叫树视图,该视图将显示问题发生的位置,并帮助您排除故障。还可以尝试使用真实的设备,因为模拟器可能会显示误报



它也可能在您在那里创建的视图控制器的初始代码中的任何位置,这可能需要检查相当多的代码:)也许有人有一个好主意系统地解决这个问题,我也会对此感兴趣。您使用了ARC吗?“—(void)applicationdFinishLaunching:(UIApplication*)application”方法已被弃用,请使用:“—(BOOL)application:(UIApplication*)application didnishLaunchingwithoptions:”(NSDictionary*)Launchoptions否我没有使用ARC ok我也会更改,因此没有收到任何警告!是的,我知道它可能在任何地方,但泄漏很快就会出现,而且总是在同一时间出现,所以我认为它应该出现在代理上或其他地方。您是在模拟器中还是在设备上分析应用程序?您的部署目标是什么?5.0? 5.1?它可能在你在那里创建的视图控制器的初始代码中的任何地方,这可能需要检查相当多的代码:)也许有人有一个好主意系统地解决这个问题,我也会对此感兴趣。你使用了ARC吗?“—(void)applicationdFinishLaunching:(UIApplication*)application”方法已被弃用,请使用:“—(BOOL)application:(UIApplication*)application didnishLaunchingwithoptions:”(NSDictionary*)Launchoptions否我没有使用ARC ok我也会更改,因此没有收到任何警告!是的,我知道它可能在任何地方,但泄漏很快就会出现,而且总是在同一时间出现,所以我认为它应该出现在代理上或其他地方。您是在模拟器中还是在设备上分析应用程序?您的部署目标是什么?5.0? 5.1?可能需要释放FavoriteSnavigationController,AboutsViewController?可能需要释放FavoriteSnavigationController,AboutsViewController?如果使用调用树,我没有得到任何信息,它是空的,这就是我无法调试的原因!我又添加了一个CycleSorry的屏幕截图,但不清楚。您是否为泄漏显示(泄漏下方的面板)设置了任何过滤器?您是否使用模拟器或真实设备?这两种情况都一样吗?您是否只看到泄漏或全局内存使用正在增加?看看脏内存,也看看Apple WWDC 2012关于内存泄漏故障排除的视频-可能会有帮助。如果使用调用树,我没有得到任何东西,它是空的,这就是我无法调试的原因!我又添加了一个CycleSorry的屏幕截图,但不清楚。您是否为泄漏显示(泄漏下方的面板)设置了任何过滤器?您是否使用模拟器或真实设备?这两种情况都一样吗?您是否只看到泄漏或全局内存使用正在增加?看看脏内存,也看看Apple WWDC 2012关于内存泄漏故障排除的视频-可能会有所帮助。