使用 afincrementalstore 处理关系 ID

Posted

技术标签:

【中文标题】使用 afincrementalstore 处理关系 ID【英文标题】:handling relationship ids with afincrementalstore 【发布时间】:2013-10-14 06:03:19 【问题描述】:

在我的数据模型中,我有以下实体:

Album:
    - name (required attribute)
    - year
    - tracks 
    ...

Track:
   - name (required attribute)
   - Album
    ...

我有一个服务器数据响应,其中包含关系详细信息,仅提供相关对象的标识符。

/专辑/1 返回:


   id:2,
   name:"The White Album",
   year:1968,
   ...
   tracks: (id:12, id:13, id:14)

目前,AFIncrementalStore 无法保存上下文,因为跟踪实体对象未通过验证。除了在数据模型中使关系可选之外,还有什么方法可以解决这个问题?

【问题讨论】:

【参考方案1】:

我想如果我们把你自己的模型考虑如下:

专辑有很多曲目 一首曲目有专辑

根据这些信息,我们需要两个实体之间的关系(一对多).. 您可以使用轨道获取请求,并在方法- (NSDictionary *)attributesForRepresentation:(NSDictionary *)representation ofEntity:(NSEntityDescription *)entity fromResponse:(NSHTTPURLResponse *)response 中检查实体名称并将数据映射到您的模型..

据我所知,如果您的模型名称类似于来自服务器的响应键,AFIncremantalStore 将根据您的模型上的键和来自服务器的响应自动进行映射..

这就是我从你的问题中了解到的全部内容,我希望答案能满足你的问题..

【讨论】:

以上是关于使用 afincrementalstore 处理关系 ID的主要内容,如果未能解决你的问题,请参考以下文章

使用 AFIncrementalStore 从故障更新

使用 AFIncrementalStore 时返回的部分关系数据如何处理?

使用 AFIncrementalStore 和 AFRestClient 进行分页

AFIncrementalStore 将核心数据与 REST API 同步

在没有 NSFetchedResultsController 或 NSArrayController 的情况下使用 AFIncrementalStore

如何使 AFIncrementalStore 将数据作为对象发布到 Rails?