我正在尝试为使用外部数据源的 iPhone 编写核心数据应用程序。我并没有真正使用 Core Data 来持久化我的对象,而是用于对象生命周期管理。我对如何将 Core Data 用于本地数据有一个很好的想法,但是在远程数据方面遇到了一些问题。我将仅使用 Flickr 的 API 作为示例。
首先,如果我需要说最近照片的列表,我需要从外部数据源中获取它们。检索到列表后,我似乎应该为每张照片迭代并创建托管对象。此时,我可以继续编写我的代码并使用标准 Core Data API 来设置获取请求并检索关于狗的照片子集。
但是,如果我想继续并检索用户照片列表怎么办?由于这两个数据集有可能相交,我是否必须对现有数据执行获取请求,更新已经存在的数据,然后插入新对象?
--
在旧模式中,我只需为这些数据集中的每一个设置单独的数据结构并适当地访问它们。一个最近的照片集和一个用户照片集。但是由于 Core Data 的一般模式似乎是使用一个托管对象上下文,因此(我可能错了)我必须将我的数据与主数据池合并。但这似乎只是为了获取照片列表而产生的大量开销。我应该为不同的集合创建一个单独的托管对象上下文吗?是否应该在这里使用 Core Data?
我认为 Core Data 的吸引力在于,在之前(对于 Web 服务)我会请求某些数据,然后在请求中过滤它或在代码中过滤它并生成我将使用的列表。使用 Core Data,我可以获取对象列表,将它们添加到我的池中(根据需要更新旧对象),然后对其进行查询。但是,我可以通过这种方法看到一个问题,如果对象被外部删除,我不知道,因为我保留了旧数据。
我在这里离基地很远吗?人们在处理远程数据和核心数据时是否遵循任何模式?:) 我发现一些人说他们已经做到了,并且对他们有用,但几乎没有例子。谢谢。