Iphone 如何调用dealloc方法

Iphone 如何调用dealloc方法,iphone,Iphone,我是iPhone开发新手。 我在按钮单击事件中调用一个viewController。但是当我回来时,我的-dealoc方法没有被调用。以下是我的按钮点击事件代码: -(IBAction)btnAddPressed:(id)sender { FriendsTableListViewController *viewController = [[FriendsTableListViewController alloc] initWithNibName:@"FriendsTableListVie

我是iPhone开发新手。 我在按钮单击事件中调用一个viewController。但是当我回来时,我的
-dealoc
方法没有被调用。以下是我的按钮点击事件代码:

-(IBAction)btnAddPressed:(id)sender
{
    FriendsTableListViewController *viewController = [[FriendsTableListViewController alloc] initWithNibName:@"FriendsTableListViewController" bundle:nil];
    [self.navigationController pushViewController:viewController animated:YES];
    [viewController release];
}
这是我点击按钮后使用的viewController的dealloc方法:

-(void)dealloc{
    [super dealloc];
}

我不知道为什么dealloc方法不能正常工作。请帮帮我。感谢您……

导航控制器保留着您的控制器(当您推送视图控制器时,它将拥有所有权),因此它不会被解除分配


如果要删除视图控制器,请将其从导航控制器中弹出。

您使用的Xcode和iOS版本是什么?是否调用委托或属性,您可能拥有保留FriendsTableListViewController的属性,您可能有一个仍然保留FriendstableListViewController实例的属性。您如何知道它没有被调用?FWIW,操作系统可以在你发布一个对象之后调用它。最好的办法是尽量避免使用dealloc方法,而不要使用dealloc方法。这里不调用dealloc方法,只调用viewwillbeen和viewdidabeen方法。调用viewDidUnLoad方法后将调用它。了解查看整个生命周期调用dealloc仅由iOS在垃圾收集期间自己完成。它并不自动意味着仅在释放对象时调用dealloc。我不知道你所说的“dealloc工作不正常”是什么意思。另外,如果你在这方面做的不多,为什么不删除whol方法,让超类处理释放?我问这个问题是因为我也尝试过这个方法:但是没有得到任何正确的答案…所以你能帮我吗,我会很感激…你试过我的方法吗?正如@xlc0212所建议的,将您的项目转换为ARC。对不起,我的朋友……我不能,因为我的老板告诉我,我们不会不惜任何代价转换为ARC……现在告诉我该怎么做?