使用 Core Data 和 SQLite 存储文件的联系人或地址簿应用程序

Posted

技术标签:

【中文标题】使用 Core Data 和 SQLite 存储文件的联系人或地址簿应用程序【英文标题】:Contact or address book app using Core Data and a SQLite storage file 【发布时间】:2012-05-26 02:34:01 【问题描述】:

我想知道是否可以创建一个使用 Core Data 和 SQLite 存储文件的地址簿或联系人应用程序,例如 Apple 的。

我不确定这是否可能,或者如何做到这一点是手机具有多个属性。因此,用户可以为同一个联系人输入五个不同的电话号码。

我能想到的唯一方法是说...为该人提供一个实体...然后为与他们建立关系的电话提供另一个实体。所以一个人可以拥有多部手机,但一部手机只能拥有一个人。但这似乎不是一个好方法……有人有建议吗?

【问题讨论】:

【参考方案1】:

我不明白您是如何得出这样的结论,即多个实体不是执行此类操作的好方法。如果您想要灵活性,这是唯一的方法。向实体添加三个电话号码属性绝对是错误的方法。

我会使用这样的简单数据模型:

每条记录都有一个类型(例如电子邮件、电话、传真、IM 联系人)、一个键(例如办公室、家庭、手机、twitter、jabber)和一个值(例如 55512345、foo@bar.com、@foobar)。

这样的模型提供了最大的灵活性,实现起来也不是很复杂。 虽然您需要几个谓词来获取电话号码、电子邮件等。

【讨论】:

感谢您的回答。我想我认为这样做是错误的或不是很好的方法。你的答案是明确的路要走。 简单、累积、高效的答案。我非常感谢您提到的方法。

以上是关于使用 Core Data 和 SQLite 存储文件的联系人或地址簿应用程序的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 和 Apple Watch 应用之间的 Core Data SQLite 存储更改通知

解析本地数据存储以替代 Core Data (iOS) 和 SQLite (Android)

在 NSLibraryDirectory 或 NSApplicationSupportDirectory 中存储 Core Data Sqlite?

Core Data SQLite 存储在更新后变为只读

如何使用 SQLite 文件预加载 Core Data,该文件引用使用“外部存储”保存的图像?

SQLite、iCloud,也许还有 Core Data——用于存储文件并与所有用户的设备共享它们?