在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)
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来标识它,但是您仍然可以使用关系将其存储在核心数据中。