繁体   English   中英

在数据库打开之前调用的UITableView数据源方法

[英]UITableView datasource methods called before database open

我正在编写一个应用程序,它使用Core Data数据库来存储我想要使用UITableView显示的数据。 我有一切工作,但有点好奇,如果有一个方法围绕一个小点,困扰我...

当应用程序运行时,我执行以下操作:

  1. 创建NSManagedDocument
  2. 创建NSFetchedResultsController
  3. 打开Core Data数据库。

我在用 ...

[[self testDatabase] openWithCompletionHandler:^(BOOL success) {
    if(success) {
        ...
    }
}];

打开数据库但我的问题是,当块执行时,UITableView dataSource已经调用 - [TableViewController tableView:numberOfRowsInSection:]并返回rows = 0

到目前为止,我的解决方案是忽略第一个“自动”调用,而是将performFetch和reloadData添加到数据库打开时执行的块。

[[self testDatabase] openWithCompletionHandler:^(BOOL success) {
    if(success) {
        [[self fetchedResultsController] performFetch:nil];
        [[self tableView] reloadData];
    }
}];

我的问题是,有没有办法阻止或延迟第一次通话? 或者我应该添加一些东西 - [TableViewController tableView:numberOfRowsInSection:]来管理第一个调用,或者它根本无关紧要,它的确如此?

您可以尝试以tableView.dataSource开始tableView.dataSource并在fetch之后设置它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM