Ios NSFetchedResultsController仍会带回已删除的NSManagedObject

Ios NSFetchedResultsController仍会带回已删除的NSManagedObject,ios,core-data,nsmanagedobject,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,我已经检查了一些相关问题,如 但我确实使用了deleteCacheWithName和deleteObject:和save,并检查了对象是否已被删除。每次我从后台删除应用程序时。然后重新开始,删除的数据再次返回 这就是我删除NSManagedObject的方式 [NSFetchedResultsController deleteCacheWithName:@"MyLists"]; [_fetchedResultsController.managedObjectContext deleteObjec

我已经检查了一些相关问题,如

但我确实使用了
deleteCacheWithName
deleteObject:
save
,并检查了对象是否已被删除。每次我从后台删除应用程序时。然后重新开始,删除的数据再次返回

这就是我删除
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 ]];

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

删除某些内容后,您应该添加:

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

这将提交操作。

删除某些内容后,应添加:

NSError *error;
[self.managedObjectContext save:&error];
这将导致行动