使用AddressBook同步核心数据

时间:2014-07-16 08:44:47

标签: ios objective-c core-data addressbook

什么是清除核心数据文件中所有数据的最佳方法,并将我更新的地址簿重写为我的核心数据?有没有办法覆盖核心数据中的数据?我怎么能在良好的实践中做到这一点?

我希望能够同步我的地址簿和核心数据文件,其中一种方法是检查地址簿中的更改,并根据更改删除或添加核心数据中的记录(我不知道)关心编辑的记录),一种方法是用核心数据删除我的SQLite文件中的所有数据,并将我更新的地址簿再次保存到同一个文件中。

1 个答案:

答案 0 :(得分:0)

请参阅this blog post from Brent Simmonsmy comment on my answer to your previous question

从Core Data存储中删除一堆对象非常昂贵。您必须获取然后实例化每个NSManagedObject,然后将其删除,然后将更改推送到您的Core Data堆栈。这个过程比简单的SQL DELETE需要花费更多的时间。

如果您必须保留Core Data存储中的其他数据,那么您就会陷入困境。你必须这样做。但是,如果你可以吹走你的数据存储并重新开始,那将会更快。使用当前的通讯簿数据创建新的Core Data存储。保存。关闭现有数据存储区。将新数据存储移动到旧数据存储的位置(或将文件路径更改为新存储的路径)。

iOS 8中的批量更新功能可能会加速此过程。