请在查看之前将其作为副本盲目投票。这不是一个重复的问题。NSFetchedResultsController更新错误更新类型
首先 - 我使用MagicalRecord
作为核心数据。 秒 - 我的UICollectionView
填充了NSFetchedResultsController
。
的NSPredicate
为NSFetchedResultsController
是...
NSPredicate *eventPredicate = [NSPredicate predicateWithFormat:@"event = %@", self.event];
NSPredicate *deletedPredicate = [NSPredicate predicateWithFormat:@"deleted == NO"];
NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[eventPredicate, deletedPredicate]];
当我添加使用魔法记录的saveWithBlock
的collectionView
更新正确的新项目CoreData和动画将更改视图。
的问题是,当我改变的删除,以@YES值...
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
Photo *photo = [[self photoAtIndexPath:[self.collectionView indexPathForCell:cell]] inContext:localContext];
photo.deleted = @YES;
}];
然后NSFetchedResultsController
委托方法火,除了它与变型NSFetchedResultsChangeUpdate
触发。这不是它应该是。它应该是NSFetchedResultsChangeDelete
,因为更改已删除的值应将其从提取请求中删除。
我不想只删除对象,因为我需要使用删除的ID更新服务器。
此外,如果我然后弹出视图,并再次推回来,照片不见了,所以我知道它正在更新它,我知道它是从取回请求中删除它。
任何想法?
您不应该调用属性“已删除”:请参阅http://stackoverflow.com/questions/16000242/core-data-nspredicate-predicatewithblock-and-predicatewithformat-in-parent-child或http:// stackoverflow.com/questions/16178847/nspredicate-does-not-get-executed-on-first-launch。 – 2013-04-29 16:23:44
非常感谢。这已修复它。但我不同意这个“类似的问题”。虽然它是相同的修复它是一个完全不同的“症状”。我没有办法去寻找那个问题。 – Fogmeister 2013-04-29 16:30:25
不客气。 - 我给出了这些链接,因为它们都表明如果您调用属性“已删除”会发生“奇怪的事情”。我不打算批评你的搜索工作! - 我不确定这是否是一个“重复问题”:这是一个不同的问题,但是同样的根本问题,因此我投票结束重复。 – 2013-04-29 16:38:56