核心数据NSFetchedResultsController不会自动获取

时间:2015-10-15 17:37:46

标签: ios xcode core-data nsmanagedobjectcontext

我有一个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? 有没有办法自动获取它们?

我知道听通知解决方案,但不确定我应该听哪个事件。如果这是正确的行为或者您是否有有效的解决方案,请告诉我

0 个答案:

没有答案