簡體   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