使用afincrementalstore处理关系ID

时间:2013-10-14 06:03:19

标签: core-data afincrementalstore

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

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 个答案:

答案 0 :(得分:0)

我认为如果我们按照以下方式考虑您自己的模型:

  • 相册有很多曲目
  • 一首曲目有专辑

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

据我所知,如果您的模型名称与服务器的响应键相同,AFIncremantalStore将根据您的模型上的键和服务器的响应自动进行映射。

这就是我从你的问题中理解的所有内容,我希望答案能满足你的问题......