在没有 RestKit 的情况下复制 RKConnectionDescription
Posted
技术标签:
【中文标题】在没有 RestKit 的情况下复制 RKConnectionDescription【英文标题】:Replicating RKConnectionDescription Without RestKit 【发布时间】:2014-07-18 01:12:02 【问题描述】:我正在从我们的 ios 应用程序中删除 RestKit。我能够将我想要的东西放入 Core Data,但它们并没有真正连接。
例如,我们有一个网络调用,它返回“Category”列表(其中有一个“categoryID”和一个“categoryName”;“Category”也映射到许多“StoreLocation”)。然后我们有另一个网络调用,它返回一个“StoreLocation”列表(其中,除其他外,有一个“storeName”、“storeID”、“storeCategoryIDs”;“StoreLocation”也映射到许多“Category”) .
使用 RestKit,我可以使用 RKConnectionDescription 来描述“storeCategoryIDs”推动了与许多“Category”的关系。这样,如果我有一个给定的 Category 对象,我就可以轻松确定哪些 StoreLocations 属于该类别。
我正在努力了解如何在没有任何 RestKit 依赖项的情况下完成此操作。我想我可以,每当我要插入一个新的类别或新的 StoreLocation 时,获取所有相反的托管对象并手动执行此操作,但我似乎缺少一些可以执行的 Core Data 组件。
【问题讨论】:
如果 RestKit 能做你想做的事,你为什么要删除它? 它不足以满足一般的网络需求,所以我们改用普通的 AFNetworking 2。 以什么方式?它基于 AFN1 构建,因此您可以在需要时访问它。您需要会话吗? 【参考方案1】:您缺少的主要部分是应用于 fetch 的谓词,它使用标识属性来查找适当的现有对象。您确实需要运行自己的 fetch,因为如果您创建一个不同的新对象并插入它,核心数据不会神奇地更新一个对象。
【讨论】:
每次设置 storeCategoryIDs 列表时(在本例中)RestKit 是否真的运行一次提取? 这取决于你如何配置它。如果您要求,它还会根据标识属性缓存对象。以上是关于在没有 RestKit 的情况下复制 RKConnectionDescription的主要内容,如果未能解决你的问题,请参考以下文章