【问题标题】:Core Data multiple objects for single entity单个实体的核心数据多个对象
【发布时间】:2014-02-03 17:10:51
【问题描述】:

我是核心数据的新手。我正在尝试使用 Core Data 创建一个员工数据库。我将用户名和他的生日存储在一个实体 Employee 中,并且该员工可以有 多个 电话号码。所以我创建了另一个实体PhoneNumbers 来存储电话号码。我已经为这两个实体建立了关系。但是当我尝试为员工插入两个电话号码时,只有第二个电话号码与员工有关系。

我不知道如何改变我的核心数据模型。

这就是我将数据插入核心数据的方式。

  NSManagedObject *entry = [NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:_managedObjectContext];
[entry setValue:@"Suresh" forKey:@"name"];
[entry setValue:[NSDate date] forKey:@"birthdate"];

NSManagedObject *phoneEntry = [NSEntityDescription insertNewObjectForEntityForName:@"PhoneNumbers" inManagedObjectContext:_managedObjectContext];
[phoneEntry setValue:@"9600492944" forKey:@"phone"];

[phoneEntry setValue:entry forKey:@"owner"];
[entry setValue:phoneEntry forKey:@"phone"];

NSError *error = nil;
if (![_managedObjectContext save:&error]) {
    NSLog(@"hi %@", [error localizedDescription]);
}

NSManagedObject *phoneEntry1 = [NSEntityDescription insertNewObjectForEntityForName:@"PhoneNumbers" inManagedObjectContext:_managedObjectContext];
[phoneEntry1 setValue:@"1234567890" forKey:@"phone"];

[phoneEntry1 setValue:entry forKey:@"owner"];
[entry setValue:phoneEntry1 forKey:@"phone"];

if (![_managedObjectContext save:&error]) {
    NSLog(@"hi %@", [error localizedDescription]);
}

【问题讨论】:

标签: ios core-data


【解决方案1】:

那是因为你没有正确设置关系。正如您在附加的屏幕截图中看到的那样,它显示指向电话号码的单个箭头(像这样 >)而不是 2 个箭头(像这样 >>)。所以单击 Employee 实体,单击电话关系。可以看到右边的工具栏,点击关系按钮(第三个)设置Type as to Many。它会解决你的问题。此外,如果您希望自动删除与此人相关的电话号码实体,请将 Delete Rule 设置为 Cascade。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    您的关系必须是一对多的 - 从您的屏幕截图中我看到您是一对一的关系。重新定义关系,它应该可以工作。

    【讨论】:

      【解决方案3】:

      在您的 coredata 模型中,选择员工实体中的关系电话并将其类型更改为“To Many”...它将在 Employee 和 PhoneNumbers 之间创建一对多关系。

      更改上述内容后,您可以为一个员工存储多个电话号码...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多