我有一个NSBinaryStoreType持久存储的核心数据,我用NSPrivateQueueConcurrencyType初始化它的managedObjectContext。
我的单例类中有一个NSFetchedResultsController属性,我初衷是这样:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:NSStringFromClass([CachedURLResponse class])];
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"messageId" ascending:YES]];
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:nil];
[self.fetchedResultsController performFetch:&error];
,即此objectContext只有一种类型的实体。
当我插入或删除对象时,我的fetchObjects保持不变。 例如,如果我打印
self.fetchedResultsController.fetchedObjects;
以下行之前和之后:
MyEntity *myEntity = [NSEntityDescription insertNewObjectForEntityForName:@"MyEntity" inManagedObjectContext:self.fetchedResultsController.managedObjectContext];
结果保持不变。 每次删除或插入对象后是否需要执行performFetch? 有没有办法自动获取它们?
我知道听通知解决方案,但不确定我应该听哪个事件。如果这是正确的行为或者您是否有有效的解决方案,请告诉我