【问题标题】: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"];

谢谢!!

【问题讨论】:

    标签: database xcode core-data


    【解决方案1】:

    对于一对一的关系,你

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

    对于多对关系,你

    1. 创建应该相关的对象
    2. 在原始对象上使用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。您需要将新对象添加到该集合中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多