Core Data / NSManagedObject / NSFetchedResultsController 中的多属性“事务”?
Posted
技术标签:
【中文标题】Core Data / NSManagedObject / NSFetchedResultsController 中的多属性“事务”?【英文标题】:Multi-property "transactions" in Core Data / NSManagedObject / NSFetchedResultsController? 【发布时间】:2010-02-04 23:54:36 【问题描述】:是否可以设置 NSManagedObject 的多个属性并让 NSFetchedResultsController 调用 controllerDidChangeContent: 一次?
换句话说,是否可以这样说:
[managedObject beginChanges];
[managedObject setPropertyA:@"Foo"];
[managedObject setPropertyB:@"Bar"];
[managedObject commitChanges];
然后让 NSFetchedResultsController 只调用一次 controllerDidChangeContent: (和其他方法)?
谢谢!
【问题讨论】:
【参考方案1】:我现在通过创建另一个NSManagedObjectContext
来解决这个问题,它充当更改的“便签本”。然后在完成所有编辑后,使用mergeChangesFromContextDidSaveNotification:
将其合并回另一个上下文中。有一个名为 CoreDataBooks 的示例项目展示了它是如何工作的。
【讨论】:
【参考方案2】:虽然绝对不是一个完美的解决方案,但您可以向托管对象类添加一个方法,该方法采用两个新属性值,其工作方式与您上面的代码非常相似。
【讨论】:
以上是关于Core Data / NSManagedObject / NSFetchedResultsController 中的多属性“事务”?的主要内容,如果未能解决你的问题,请参考以下文章