小编Mat*_*iss的帖子

NSPredicate导致更新编辑返回NSFetchedResultsChangeDelete而不是NSFetchedResultsChangeUpdate

- (NSFetchedResultsController *)fetchedResultsController从CoreDataBook示例开始以标准方式使用谓词.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"state=%@ && date >= %@ && date < %@", @"1",fromDate,toDate];
    [fetchRequest setPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

这工作正常但是在编辑项目时,它返回NSFetchedResultsChangeDelete而不是Update.当主视图返回时,它缺少该项.如果我重新启动模拟器,则不会保存删除并显示正确的编辑结果,谓词正常工作.

case NSFetchedResultsChangeDelete:
 [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
 break;
Run Code Online (Sandbox Code Playgroud)

我可以通过仅注释两个谓词行来确认行为,然后全部工作,因为它应该在编辑和调用NSFetchedResultsChangeUpdate而不是NSFetchedResultsChangeDelete后正确返回完整集.

我已经阅读了http://matteocaldari.it/2009/11/multiple-contexts-controllers-delegates-and-coredata-bug ,他们报告了类似的行为,但我还没有找到解决问题的方法.

predicate core-data

4
推荐指数
1
解决办法
1133
查看次数

标签 统计

core-data ×1

predicate ×1