Jac*_*ale 7 core-data upsert ios nsmergepolicy
只是想知道是否有一个好办法UPSERT在一个项目CoreData db?
或者有没有办法让我将CoreData数据库视为一个集合?
我的意思是,如果我将一个项目插入到数据库中,并且如果那里已经存在相同的冗余项目,则数据库会忽略它.有什么办法方便吗?或者我每次插入时都要查询以避免冗余?
我最近读了这篇文章
https://www.upbeat.it/upsert-in-core-data/
基本上,首先在名称上创建约束,然后在核心数据上下文中指定 TrumpMergePolicy。
managedObjectContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
Run Code Online (Sandbox Code Playgroud)
否 - 核心数据无法了解您如何看待某个项目“相同”或“冗余”。这些词的定义几乎会随着您创建的每个实体而变化 - 例如,企业中的部门可能具有唯一的名称,但多个人可以具有相同的名称(并且经常这样做)。
但是,您可以利用 Core Data 的查询功能,并使用 NSPredicate 进行快速查询,以查明具有您选择的标识符的记录是否已存在。您可以将此查询分解为它自己的方法(可能在您的托管对象子类上),以便您可以方便地调用它。