NSFetchedResultsController更新错误的更新types
请在盲目投票之前查看这些意见。 这不是一个重复的问题。
首先 – 我正在使用MagicalRecord
核心数据。 其次 – 我的UICollectionView
填充UICollectionView
。
NSPredicate
是…
NSPredicate *eventPredicate = [NSPredicate predicateWithFormat:@"event = %@", self.event]; NSPredicate *deletedPredicate = [NSPredicate predicateWithFormat:@"deleted == NO"]; NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[eventPredicate, deletedPredicate]];
当我使用Magical Record的saveWithBlock
将新项目添加到CoreData时, collectionView
正确更新并将更改animation到视图中。
问题是,当我将更改的值删除到@YES …
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { Photo *photo = [[self photoAtIndexPath:[self.collectionView indexPathForCell:cell]] inContext:localContext]; photo.deleted = @YES; }];
然后NSFetchedResultsController
委托方法触发,除非它触发与更改typesNSFetchedResultsChangeUpdate
。 这不是它应该是。 它应该是NSFetchedResultsChangeDelete
作为更改已删除的值应从删除请求中删除它。
我不想只删除对象,因为我需要用删除的ID更新服务器。
另外,如果我然后popup视图,并再次推回来的照片不见了,所以我知道它正在更新它,我知道它是从取回请求中删除它。
有任何想法吗?
你不能调用属性“已删除”,因为这与NSManagedObject
的isDeleted
方法冲突。
请参阅核心数据NSPredicate“deleted == NO”不能按预期的方式工作,或者NSPredicate在第一次启动时不会执行,因为如果某个属性被称为“已删除”,则会发生“奇怪的事情”。