填充关系核心数据
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。您需要将新对象添加到该集合中。以上是关于填充关系核心数据的主要内容,如果未能解决你的问题,请参考以下文章