記事がダウンロードされてオフラインで表示できるRSSリーダーコードに取り組んでいます。問題は、すべての記事がダウンロードされた後でのみ、見出しを含むテーブルビューが更新されることです。コアデータが使用されます。したがって、NSobjectcontextが保存されるたびに、[self tableview updatebegins]が呼び出されます。テーブルは、fetchcontrollerコアデータを介して更新されます。
記事を保存するたびにNSobjectcontextを保存しようとしましたが、テーブルビューが更新されません。記事が保存され、テーブルビューがすぐに更新されるinstapaperテーブルビューに似たメカニズムが必要です。あなたが解決策を知っているなら助けてください。前もって感謝します。
理解を深めるためのコードの追加
AppDelegate.mには次のコードが含まれています
- (void)feedSuccess:(ZSURLConnectionDelegate*)delegate
NSManagedObjectContext *moc = [self managedObjectContext];
CXMLElement *root = [document rootElement];
CXMLElement *channel = [[root elementsForName:@"channel"] lastObject];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"FeedItem" inManagedObjectContext:moc]];
for (CXMLElement *item in [channel elementsForName:@"item"])
{
// push element in core data and then save context
//Save context
[moc save:&error];
ZAssert(error == nil, @"Error saving context: %@", [error localizedDescription]);
}
これにより、RootviewController.mのテーブル変更コードがトリガーされます
- (void)controllerWillChangeContent:(NSFetchedResultsController*)controller
{
[[self tableView] beginUpdates];
}