【发布时间】:2016-06-24 09:50:44
【问题描述】:
我的应用使用本地 iOS 联系人以及同一列表中的一些服务器联系人。
服务器联系人在启动时获取并保存在NSManagedObjectContext 中。
每个服务器联系人都用NSManagedObject 的子类Contact 类表示。
我使用CNContactStore 获取的本地联系人。
问题是如何处理这个“加入”到单个列表中。
我想到的是:
1.) 将服务器和本地联系人保存到相同的NSManagedObjectContext 作为联系人对象,然后从那里获取。
-> 优点:- 获取是统一的
-> 缺点: - 本地联系人在存储内存中翻倍
- 如果用户从我们的应用程序中添加新的本地联系人,它将不会自动显示在列表中
2.) 只保存服务器联系人,每次用户访问联系人列表时都会获取本地联系人,并将其附加到列表中
优点: - 联系人只保存一次,本地联系人更新总是显示
缺点 - 获取不是单一来源,这会使使用 NSFetchResultController 的事情变得复杂
也许还有其他方法?
那么,在同一个列表中显示缓存的服务器联系人和本地 iOS 联系人的最佳方式是什么?
【问题讨论】:
-
什么是
NSContactStore?如果我用谷歌搜索,这个问题是唯一的结果。 -
不,它是 iOS 地址簿的新 iOS9 替代品
-
那么你的意思是
CNContactStore。 -
是的,感谢您指出这一点,我已经编辑了我的答案
标签: ios swift uitableview core-data contacts