填充关系核心数据

Posted

技术标签:

【中文标题】填充关系核心数据【英文标题】:Fill relationships Core Data 【发布时间】:2011-06-22 18:24:47 【问题描述】:

我正在尝试在我的数据库中创建新元素。我可以从我的新元素中填充所有属性,但我可以填充它的关系。有人知道我该怎么做吗??

我这样填充新元素:

NSManagedObject *mo = [NSEntityDescription insertNewObjectForEntityForName:@"People"
                                                    inManagedObjectContext:context];
[mo setValue:label_name.text forKey:@"name"];
[mo setValue:label_surname.text forKey:@"surname"];

谢谢!!

【问题讨论】:

【参考方案1】:

对于一对一的关系,你

    创建应该相关的对象 setValue:forKey: 的用法与属性相同。

对于多对关系,你

    创建应该相关的对象 在原始对象上使用mutableSetValueForKey 将新对象添加到关系中。

【讨论】:

我也试过这个:[mo setValue: [NSNumber numberWithInt:99] forKey:@"Relationship"];我得到:由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'对多关系不可接受的值类型:属性=“关系”;所需类型 = NSSet;给定类型 = NSCFNumber;值 = 99。任何的想法?非常感谢!!! 我试过这样的事情:NSManagedObject *mo = [NSEntityDescription insertNewObjectForEntityForName:@"Entity1" inManagedObjectContext:context]; [mo mutableSetValueForKey:@"Relationship"];但这会出现:“操作无法完成。(Cocoa 错误 1580。)” UserInfo=0x4d3b380 NSValidationErrorObject= (entity: Entity1; id: 0x5998ac0 ; data: Relationship = ( ); 由于这是一个多对多的关系,你在 mutableSetValueForKey 的正确轨道上。该方法为您提供了一个 NSMutableSet。您需要将新对象添加到该集合中。

以上是关于填充关系核心数据的主要内容,如果未能解决你的问题,请参考以下文章

用核心数据属性填充数组

核心数据 - 关系

核心数据关系的性能改进

预填充核心数据存储:使用 JSON 属性列表还是 XML 文件?

如何设置核心数据实体之间的关系?

tableView 中显示的核心数据关系