在Xcode核心数据中一对多添加多个对象

在Xcode核心数据中一对多添加多个对象,xcode,core-data,one-to-many,Xcode,Core Data,One To Many,我在核心数据中有两个元素: 新闻(包括主题、消息、日期等项目) 图片(带有一项:链接到图像URL) 每个新闻项目可以有多张图片(即一对多关系) 在Xcode中,元素设置正确 我使用XML导入新闻数据。在每个新闻项目上,我都有两个数组: newsaray ImageArray newsaray加载了新闻元素的所有信息。imageArray加载了属于该新闻元素的图像的URL 我已经解决了如何将newsArray的信息放入核心数据的问题,但我的问题如下: 如何将imageArray的对象输入并

我在核心数据中有两个元素:

  • 新闻(包括主题、消息、日期等项目)
  • 图片(带有一项:链接到图像URL)
每个新闻项目可以有多张图片(即一对多关系)

在Xcode中,元素设置正确

我使用XML导入新闻数据。在每个新闻项目上,我都有两个数组:

  • newsaray
  • ImageArray
newsaray
加载了新闻元素的所有信息。
imageArray
加载了属于该新闻元素的图像的URL

我已经解决了如何将newsArray的信息放入核心数据的问题,但我的问题如下:

如何将
imageArray
的对象输入并保存到核心数据图片元素中,并与我刚才添加的新闻项相关联


我现在有一些用于保存新闻元素的代码,但是它有点超载,因为XML加载的东西等等。

您迭代您的
imageArray
,并将图像作为一个关系逐个添加到新闻项中。生成
NSManagedObject
子类时,Xcode应该自动为您创建这些setter和accessor方法:

for (NSDictionary *d in imageArray) {
  Image *i = [NSEntityDescription insertNewObjectForEntityForName:@"Image"
      inManagedObjectContext:_managedObjectContext];
  i.url = d[@"imageURL"];
  [newsItem addImagesObject:i];  // Xcode generated method
}
// save

好的,但我不明白的是:我首先上传一条新闻,比如id为300的新闻。核心数据如何知道我在那之后上传的图像属于id为300的新闻项目?您可以将它们作为关系添加,如上所示。具有ID的外键方案被核心数据完全隐藏。如果您需要从核心数据外部更新一个项目,您可以使用这个id来标识它,但是您仍然可以使用关系将其存储在核心数据中。