来自核心数据和外部源的模型对象

Posted

技术标签:

【中文标题】来自核心数据和外部源的模型对象【英文标题】:Model Object From Both Core Data & External Source 【发布时间】:2011-06-17 20:20:02 【问题描述】:

我正在构建一个应用程序,我的主要模型对象可以从核心数据存储或外部源(通过互联网的公共 API -> JSON -> 对象)获取。我是 Core Data 的新手,所以我的问题是我可以将我的模型对象保持原样并创建它的超类 NSManagedObject 吗?我想我需要确保我的模型的属性与数据模型实体的名称和类型相匹配才能发生这种情况。我不想在应用程序中使用两种不同的模型对象——一种是从核心数据存储中获取,另一种是从互联网 API 中获取。

我还需要做些什么来使我已经构建的模型对象与核心数据兼容吗?

任何指导或建议将不胜感激。

问候,

克雷格

【问题讨论】:

【参考方案1】:

您可以向您的对象(NSManagedObject 的子类)添加一些业务逻辑,以便能够从数据(即要使用的值的NSDictionary)创建这样的对象。关键在于您是否希望将这些对象管理/保存到本地数据存储中。

我强烈建议您熟悉NSManagedObjectContext:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObjectContext_Class/NSManagedObjectContext.html

【讨论】:

【参考方案2】:

我在几个产品中所做的只是处理核心数据对象,并从我从 Web 服务中提取的数据初始化它们。这样你就只有苹果了。另一种选择是制定一个定义类似类行为的协议。您会很想将一个作为另一个的子类,但这可能会变得复杂,具体取决于您的持久性要求。

【讨论】:

以上是关于来自核心数据和外部源的模型对象的主要内容,如果未能解决你的问题,请参考以下文章

核心数据模型对象保存的最佳实践

来自外部源的 Django 用户和身份验证

核心数据模型级联删除和父实体

数据库项目 - “无法解析对来自名为 x 的源的外部元素的引用

Django:将来自外部 API 的数据映射到模型中?

具有来自外部 Api 的缓存数据的 Falcor 模型