【问题标题】:NSFetchedResultsController still brings back the NSManagedObject, which has been deletedNSFetchedResultsController 还是带回来了 NSManagedObject,已经被删除了
【发布时间】:2012-10-01 16:14:47
【问题描述】:

我检查了几个相关问题,例如How can I tell whether an `NSManagedObject` has been deleted?Avoid fetching deleted NSManagedObjects

但我确实使用了deleteCacheWithNamedeleteObject:save,并且检查了该对象也已被删除。每次我从后台删除应用程序时。重新开始,删除的数据NSManagedObject又回来了。

这就是我删除NSManagedObject的方式。

[NSFetchedResultsController deleteCacheWithName:@"MyLists"];
[_fetchedResultsController.managedObjectContext deleteObject:list];
NSError *error;
if ([_fetchedResultsController.managedObjectContext save:&error]) {
  NIDPRINT(@"managedObjectContext Save Error: %@", error.localizedDescription);
}
NIDPRINT(@"Check hasManagedObjectBeenDeleted: %@", [self hasManagedObjectBeenDeleted:list] ? @"YES" : @"NO");

这就是我最初的NSFetchedResultsController

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"MyList"];
fetchRequest.sortDescriptors = @[ [[NSSortDescriptor alloc] initWithKey:@"listID" ascending:YES] ];
NSString *userName = [[ICAccountManager sharedManager] getUsername];
NSString *format = [NSString stringWithFormat:@"username==\"%@\"", userName];
fetchRequest.predicate = [NSPredicate predicateWithFormat:format];

fetchRequest.propertiesToFetch = [NSArray arrayWithObject:@"count"];
fetchRequest.shouldRefreshRefetchedObjects = YES;
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[(id)[[UIApplication sharedApplication] delegate] managedObjectContext] sectionNameKeyPath:nil cacheName:@"lists"];
_fetchedResultsController.delegate = self;
[_fetchedResultsController performSelectorOnMainThread:@selector(performFetch:) withObject:nil waitUntilDone:YES modes:@[ NSRunLoopCommonModes ]];

有什么方法可以检查我是否遗漏了什么?

【问题讨论】:

    标签: ios core-data nsmanagedobject nsmanagedobjectcontext


    【解决方案1】:

    删除后,你应该添加:

    NSError *error;
    [self.managedObjectContext save:&error];
    

    这将提交操作。

    【讨论】:

      猜你喜欢
      • 2010-11-28
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      相关资源
      最近更新 更多