gpt4 book ai didi

ios - 核心数据单个实体的多个对象

转载 作者:行者123 更新时间:2023-12-01 18:16:26 26 4
gpt4 key购买 nike

我是Core Data的新手。我正在尝试使用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]);
}

最佳答案

那是因为您没有正确设置关系。如您在所附屏幕快照中所见,它显示了指向电话号码的单个箭头(例如>),而不是2个箭头(例如>>)。因此,单击Employee实体,单击电话关系。您可以在右侧看到工具栏,单击关系按钮(第三个),将类型设置为Many 。它将解决您的问题。另外,如果您希望自动删除与该人相关的电话号码实体,则将删除规则设置为Cascade 。希望能帮助到你。

关于ios - 核心数据单个实体的多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21523130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com