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 中的多属性“事务”?的主要内容,如果未能解决你的问题,请参考以下文章

Swift Core Data:Core Data 中的枚举 [重复]

RestKit / Core Data:远程删除的实体不会从 Core Data 中删除

Plain Core Data vs Core Data + Magical Record

RESTkit,Core Data:在将对象传输到 Core Data 之前对其进行处理

.net core 基于Dapper 的分库分表开源框架(core-data)

EF6 System.Data.Entity.Core.EntityKey 在 Entity Framework Core 中的等价物是啥?