Ios 如何在一个实体中保存多人(CoreData)

Ios 如何在一个实体中保存多人(CoreData),ios,xcode,core-data,Ios,Xcode,Core Data,我有一个实体,看起来像这样: Entityname = Country 具有“城市”和“人”的属性 我想在那座城市里拯救更多的人 我正在使用上面发布的代码,但只保存最后一个人 如何在CoreData中保存多个人 希望您能帮助我。您需要创建一个包含所有需要保存到核心数据模型的人员的数组。您需要创建一个包含所有需要保存到核心数据模型的人员的数组。请尝试此代码。希望这对你有帮助 yourArray = [[NSMutableArray alloc]initWIthObjects:@"Doug",@"

我有一个实体,看起来像这样:

Entityname = Country
具有“城市”和“人”的属性

我想在那座城市里拯救更多的人

我正在使用上面发布的代码,但只保存最后一个人

如何在CoreData中保存多个


希望您能帮助我。

您需要创建一个包含所有需要保存到核心数据模型的人员的数组。

您需要创建一个包含所有需要保存到核心数据模型的人员的数组。

请尝试此代码。希望这对你有帮助

yourArray = [[NSMutableArray alloc]initWIthObjects:@"Doug",@"Carry",@"Arthur"];

for(int i = 0; i < [yourArray count]; i++)
{
    NSManagedObjectContext *context = [self managedObjectContext];
    countryObject=[NSEntityDescription
                              insertNewObjectForEntityForName:@"Country" 
                              inManagedObjectContext:context]; 
    countryObject.city = @"New york";
    countryObject.people = [NSString stringWithFormat:@"%@",[yourArray objectAtIndex:i]];
    NSError *error;
    if (![context save:&error]) {
        NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
    }
}
yourArray=[[NSMutableArray alloc]initWIthObjects:@“Doug”、@“Carry”、@“Arthur”];
对于(int i=0;i<[yourArray count];i++)
{
NSManagedObjectContext*上下文=[self-managedObjectContext];
countryObject=[NSEntityDescription
insertNewObjectForEntityForName:@“国家”
inManagedObjectContext:context];
countryObject.city=@“纽约”;
countryObject.people=[NSString stringWithFormat:@“%@,[yourArray objectAtIndex:i]];
n错误*错误;
如果(![上下文保存:&错误]){
NSLog(@“哎哟,无法保存:%@,[error localizedDescription]);
}
}
更新:

在您解释您不需要三个不同的实例之后,然后


这可以通过为
城市
创建一个单独的实体来实现,然后将他们之间的关系作为
到多个关系。
这样您就可以实现

试试这段代码。希望这对你有帮助

yourArray = [[NSMutableArray alloc]initWIthObjects:@"Doug",@"Carry",@"Arthur"];

for(int i = 0; i < [yourArray count]; i++)
{
    NSManagedObjectContext *context = [self managedObjectContext];
    countryObject=[NSEntityDescription
                              insertNewObjectForEntityForName:@"Country" 
                              inManagedObjectContext:context]; 
    countryObject.city = @"New york";
    countryObject.people = [NSString stringWithFormat:@"%@",[yourArray objectAtIndex:i]];
    NSError *error;
    if (![context save:&error]) {
        NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
    }
}
yourArray=[[NSMutableArray alloc]initWIthObjects:@“Doug”、@“Carry”、@“Arthur”];
对于(int i=0;i<[yourArray count];i++)
{
NSManagedObjectContext*上下文=[self-managedObjectContext];
countryObject=[NSEntityDescription
insertNewObjectForEntityForName:@“国家”
inManagedObjectContext:context];
countryObject.city=@“纽约”;
countryObject.people=[NSString stringWithFormat:@“%@,[yourArray objectAtIndex:i]];
n错误*错误;
如果(![上下文保存:&错误]){
NSLog(@“哎哟,无法保存:%@,[error localizedDescription]);
}
}
更新:

在您解释您不需要三个不同的实例之后,然后


这可以通过为
城市
创建一个单独的实体来实现,然后将他们之间的关系作为
到多个关系。
这样您就可以实现

解决问题的方法是:

  • 创建3个实体国家城市个人
  • 使用XCode的图形工具设置实体的属性(例如Country.name、City.name、Person.name等)
  • 设置实体之间的关系。您需要一对多来自国家->城市[称之为城市]和一对多来自城市->人[称之为人](请参阅关于此主题的内容)。请记住,您还需要设置反向关系
  • 这就是所有乐趣的开始。。。选择编辑器>创建NSManagedObject子类。然后,Xcode将根据您的模型生成文件。现在,如果您查看头文件,您应该会在生成的方法中看到类似的内容:
  • 从这一点来看,很明显要弄清楚如何添加多个对象:) 我知道这一切一开始可能看起来很难,但一旦你进入其中,你将真正能够轻松有效地管理复杂的对象图。
    我希望这些信息能让你走上正轨

    解决问题的方法是:

  • 创建3个实体国家城市个人
  • 使用XCode的图形工具设置实体的属性(例如Country.name、City.name、Person.name等)
  • 设置实体之间的关系。您需要一对多来自国家->城市[称之为城市]和一对多来自城市->人[称之为人](请参阅关于此主题的内容)。请记住,您还需要设置反向关系
  • 这就是所有乐趣的开始。。。选择编辑器>创建NSManagedObject子类。然后,Xcode将根据您的模型生成文件。现在,如果您查看头文件,您应该会在生成的方法中看到类似的内容:
  • 从这一点来看,很明显要弄清楚如何添加多个对象:) 我知道这一切一开始可能看起来很难,但一旦你进入其中,你将真正能够轻松有效地管理复杂的对象图。
    我希望这些信息能让你走上正轨

    我该怎么做?我知道如何填充数组,但如何保存数组数据?我该如何做?我知道如何填充数组,但我如何保存数组太CoreData?thx,这对我很有帮助。但现在我有另一个问题。我在带有自定义单元格的动态tableviewcontroller中获取了这些数据。例如,如果我使用你的代码,他会生成3个单元格,其中City=NewYork,并拆分数组。单元格1=道格,单元格2=进位。。。在我的例子中,我需要他只创建一个名为“纽约”的单元格和这三个属性。这可以通过为城市和人创建一个单独的实体来实现,然后建立他们之间的关系,就像建立许多关系一样。否则,迭代循环并连接该数组中的所有三个值,存储在一个字符串中,然后将该字符串存储到核心数据。这不会将三个人添加到一个城市,而是创建三个
    国家的实例,每个实例都具有相同的
    城市
    ,但不同的
    
    
    - (void)addPersonObject:(Person *)value;
    - (void)removePersonObject:(Person *)value;
    - (void)addPersons:(NSSet *)value;
    - (void)removePersons:(NSSet *)value;