2012-11-30 45 views
0

我有點重新加載我的tableView在UIViewController中設置的麻煩。ios - reloadData TableView和核心數據

  • 它填充了CoreData(這工作)
  • 它也有一個自定義的TableViewCell一些設計目的

現在通常我會用的就是這個:[_mainTableView reloadData];

那這次不工作。

這是因爲自定義單元或是核心數據的FetchRequest加載罰款最初並顯示數據時,我重新啓動應用程序?

我已經看到了關於SO和Google的幾個問題和教程,但他們都沒有在我的案例中工作。

我也探索這些方法:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller 
{ 
    [self.tableView beginUpdates]; 
} 

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller 
{ 
    [self.tableView endUpdates]; 
} 

這裏找到:beignUpdates

任何建議表示讚賞。

+0

因此,您已驗證更新的數據來自核心數據,但它沒有進入tableview,是否正確? –

+0

是的正確:-)我已經通過重新啓動它並在Firefox中使用SQLite插件檢查了應用程序 –

+0

你在哪裏調用reloadData? –

回答

0

謝謝你的輸入,我終於把它分類了。

而不是調用[_mainTableView reloadData]我不得不再次調用fetchmethod。

if (_managedObjectContext == nil) 
{ 
    _managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
    NSLog(@"After _managedObjectContext: %@", _managedObjectContext); 
} 

[self setupFetchedResultsController]; 
0

你合成了你的表格視圖嗎?請試試這個:

[self.mainTableView reloadData];

希望它能工作。並且,由於您將它重新加載到viewWillAppear,請確保它既沒有分配新的時間,也沒有它的委託/數據源再次分配,如果是,那麼第一次做這樣的事情:

_mainTableView.delegate = nil; _mainTableView.delegate =自我; //同樣,對於數據源...

而且,你需要顯式調用你的viewWillAppear中(我假設你已經這樣做了。)

請讓我知道任何關心。

謝謝。