假设fetchedResultsController
的属性chatViewController
(UITableViewController
的子类的实例,nil
始终为viewDidLoad
,nil
是否安全?假设它在viewDidUnload
中设置为viewDidLoad
,则会被调用?呼!
如果是这种情况,那么我认为不需要像Xcode示例应用程序CoreDataBooks那样重新定义访问器函数。我宁愿把所有代码放在{{1}}而不是单独的函数中,因为这是我唯一使用它的地方。
答案 0 :(得分:3)
在加载视图后调用viewDidLoad。 fetchedResultsController是否为n取决于viewController的初始化方式。例如,在创建detailViewController
时,您可以在调用fetchedViewController
之前设置其viewDidLoad
:
RecipeDetailViewController *detailViewController = [[RecipeDetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
detailViewController.fetchedResultsController = fetchedResultsController;
[self.navigationController pushViewController:detailViewController animated:animated];
[detailViewController release];
那就是说,然后在viewDidUnload中nil'ing fetchedResultsController将确保它为零。
答案 1 :(得分:3)
在这些Secnarion中调用的ViewDidLoad: -
1.当我们按照segue或stoary board id创建对象后推送视图控制器。
2.如果在应用程序中创建实例更多时间并且一次又一次地推送它,则调用多个。例如: - 如果你实现像coaursal(在滚动期间需要额外的控制器),就像它需要的那样所以它可以多次调用viewDidLoad。3.当所有内存实例(uiviewcontroller及其子类实例化)时调用,这意味着我们的视图准备好在内存中加载地址。
4.Remember仅创建子类控制器对象。在正常的Secnarion期间,从未实例化过父类对象。
答案 2 :(得分:2)
您必须假设可以多次调用viewDidLoad。如果发送了内存警告,视图控制器将从内存中卸载视图,下次需要时将调用viewDidLoad。
答案 3 :(得分:0)
viewDidLoad
。如果您不是每次都在应用程序中重新创建视图控制器,那么您只能调用一次(如果您收到内存警告则再次调用,并且视图为零)。