使用 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 和 AFRestClient 进行分页
AFIncrementalStore 将核心数据与 REST API 同步
在没有 NSFetchedResultsController 或 NSArrayController 的情况下使用 AFIncrementalStore