核心数据如何处理基于 ID 的关系

Posted

技术标签:

【中文标题】核心数据如何处理基于 ID 的关系【英文标题】:Core data how to handle relationships based on IDs 【发布时间】:2013-10-16 11:10:00 【问题描述】:

我有一个休息网络服务,它可以让我得到以下结构的 json 响应:


"Categories": [
    
        "category_id":1,
        "category_name":"category 1"
    ,
     
        "category_id":2,
        "category_name":"category 2"
    
],
"Products":[
    
        "product_id":1,
        "product_name":"Product 1",
        "category_id":1
    ,
    
        "product_id":2,
        "product_name":"Product 2",
        "category_id":1
    ,
    
        "product_id":3,
        "product_name":"Product 3",
        "category_id":2
    

]    

我正在为我的 ios 应用程序创建一个核心数据模型,我可以在其中保存这些数据,如下所示。

问题是如何使用我在核心数据模型中创建的关系来映射这些数据?

我想到的最愚蠢的想法是根据类别ID搜索每个产品的类别,然后将其设置为 Product.category = category [i] ,但必须有更简单的方法来做到这一点。

【问题讨论】:

你可能想看看使用 RestKit。 是的,在SO 上对 RestKit 有类似的兴趣。但我确实已经使用ObjectMapper 编写了很多代码。 【参考方案1】:

根据您对ObjectMapper 的使用,您需要使用您的“愚蠢的想法 (TM)”自行建立联系。您应该将 fetch 视为批处理并对结果进行排序,以最大限度地减少对 Core Data 的调用并简化映射。

如果您选择使用 RestKit,那么您只需配置对象的映射以及用于链接它们的身份,RestKit 将完成提升工作。这对你来说可能有点工作......

【讨论】:

以上是关于核心数据如何处理基于 ID 的关系的主要内容,如果未能解决你的问题,请参考以下文章

基于实体关系的核心数据获取

核心数据:如何处理新版本?

嵌套 UICollectionViews - 我应该如何处理来自核心数据的数据?

如何处理 CORE DATA 中的一对多关系

如何处理有关核心数据、共享偏好和通知的 Mac OS X 助手/主应用程序架构?

深度学习核心技术精讲100篇(八十)-脏数据如何处理?置信学习解决方案