簡単な質問です。コア データ スタック (子/親) コンテキストがあります。子はjson objをフェッチして解析し、それらを親に保存します。カウントが20になると、親はメインスレッドを取得して保存します...すべて正常に動作します。ただし、私のテーブルビューでは、毎回データベース全体を再フェッチする必要があります! 私のフェッチカウントと期間はこれに大きな影響を与えます。誰か私にアイデアを教えてもらえますか? よろしくお願いします!また、何らかの理由で [[[SharedStore ShareStoreManager]getMasterContext] reset] は正常に動作します... ただ、mergeChangesFromContext ではありません!
NSNotificationCenter *mergeNotification = [NSNotificationCenter defaultCenter];
[mergeNotification addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:[[SharedStore ShareStoreManager]getMasterContext]]
-(void)mergeChanges:(NSNotification *)notification {
[[[SharedStore ShareStoreManager]getMasterContext] mergeChangesFromContextDidSaveNotification:notification];
[self.tableView layoutIfNeeded];
[self.tableView reloadData];
}
編集:コンテキストオブジェクトに行って、マージされていない挿入されたアイテムを見たので、そこに強制的に行きましたが、それでも運がありません!!!
for (User *user in [[notification.userInfo objectForKey:@"inserted"] allObjects]) {
[[[SharedStore ShareStoreManager]getMasterContext] refreshObject:user mergeChanges:YES];
}
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
}