我的视图控制器需要知道它何时从导航控制器堆栈中弹出,以便它可以保留自己,等待并稍后通过另一个通知释放自己。
我打算在发送视图时发送dealloc消息:
- (void)dealloc {
if (self.isPerformingSomeTask) {
self.isPopedOut = YES;
[self retain];
return;
}
[super dealloc];
}
但我认为这不是一个好的解决方案?
答案 0 :(得分:4)
这是一个非常糟糕的主意。
编辑:以下代码引用我的评论如下:
所以你的代码应该是这样的
- (void) startMyLongTask {
[self retain];
// start the task
}
- (void) longRunningTaskReturns {
// process results
[self release];
}
- (void) dealloc {
// as long as longRunningTaskReturns is not called
// you will never come here
[super dealloc];
}