0

我将观察者添加到UITableView属性中。

[tableView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];

众所周知,何时调用UIViewController弹出-[UIViewController dealloc]方法以及-[UIViewController viewWillUnload]何时收到内存警告。

我应该在两个地方删除观察者(好吧,无论如何我必须)?这是最好的代码重复。或者也许我可以调用(如 Three20 框架中所写)-[UIViewController viewWillUnload]-[UIViewController dealloc]这种方法好吗?

4

1 回答 1

1

您应该只删除 dealloc 中的观察者。如果您也在 viewWillUnload 中执行此操作,您可能会删除观察者两次,这会使您的应用程序崩溃。但是,添加两次观察者不是问题。即使你在 viewDidUnload 中 nil tableView,观察者可以继续存在,它不会做任何事情。

于 2012-10-10T15:48:29.777 回答