【发布时间】:2012-05-24 06:47:09
【问题描述】:
我是 iPhone 开发的新手。
我在按钮单击事件上调用了一个 viewController。但是当我回来时,我的-dealloc 方法没有被调用。这是我的按钮点击事件代码:
-(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 使用的是什么版本?
-
你是调用delegate还是properties,你可能有一个属性保留了FriendsTableListViewController,你可能有一个属性仍然保留了FriendsTableListViewController的一个实例
-
你怎么知道它没有被调用? FWIW,操作系统可以在您发布对象之后调用它。最好的办法是尽量避免使用
-dealloc,而是使用ARC。 -
这里不会调用dealloc方法,只会调用viewwillAppear和viewDidAppear方法。它会在 viewDidUnLoad 方法被调用后被调用。全面了解视图生命周期
-
对 dealloc 的调用仅由 iOS 在垃圾收集期间自行完成。它并不自动意味着仅在释放对象时才调用 dealloc。而且我不确定您所说的“dealloc 无法正常工作”是什么意思。另外,如果您在那里做的不多,为什么不删除整个方法并让超类处理释放?
标签: iphone