CoreData INSERT还是REPLACE?

Nyx*_*0uf 6 sqlite iphone cocoa cocoa-touch core-data

我目前正在使用SQLite将iphone应用程序迁移到CoreData.

我需要执行INSERT或REPLACE才能添加新内容,是否有办法执行此操作或者是否必须获取所有数据库并查找现有对象并添加新对象?

谢谢.

Mar*_*rra 15

请记住,Core Data是一个对象层次结构,它恰好会持久存储到数据库中,因此您需要将其视为对象图而不是数据库.

因此,是的,您需要检查对象是否已经存在使用某些已定义的唯一ID,如果它当前不存在,则需要创建新对象而不是更新现有对象.

更新

您不需要获取所有对象,使用a NSFetchRequest和a 搜索存储NSPredicate以检查是否存在; 如果它存在更新,如果它不创建它.


Yuj*_*uji 7

请参阅此Apple文档,标题为"有效导入数据".这正是您想要学习的主题.特别要仔细阅读"有效地实现查找或创建"一节.

当然,购买Marcus Zarra关于Core Data的书很棒:)

  • 链接已经死了.很好的例子显示为什么拥有精简信息比仅仅链接更好.. (2认同)