ios - 核心数据保存实体问题

标签 ios core-data

这可能是一个非常原始的问题。我有一个属于不同国家的州列表。

Data 1: state - xyz
        country - A

Data 2 : state - abc
         country - B

Data 3: state - ght
        country - A

Data 2 : state - ase
         country - B

在核心数据中,我有不同的州和国家实体。在保存时我如何将所有州放入他们的国家对象?

编辑:国家关系

enter image description here

最佳答案

假设数据是字典数组,

for (NSDictionary *data in datas) {

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Country" inManagedObjectContext:[dbManager getCurrentContext]];
    [fetchRequest setEntity:entity];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@", [data valueForKey:@"country"]];
    [fetchRequest setPredicate:predicate];

    NSError *error;
    NSArray * fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
    if ([fetchedObjects count] > 0) {

        Country *country = [fetchedObjects objectAtIndex:0];
        //Using CoreDataGeneratedAccessors
        [country addStateObject:[data valueForKey:@"state"]];
    } else {

        Country *country = [NSEntityDescription insertNewObjectForEntityForName:@"Country" inManagedObjectContext:managedObjectContext];
        country.name = [data valueForKey:@"country"];
        ...

        if ([managedObjectContext save:&error])
        {
             //Using CoreDataGeneratedAccessors
             [country addStateObject:[data valueForKey:@"state"]];
        }
    }
}

希望对你有帮助

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

相关文章:

ios - coreData executeFetchRequest 方法的竞争条件导致 nil 数据的问题

ios - 如何在滚动 contentView 之前向上移动 ScrollView 的框架? (当scrollView从屏幕中间开始时)

ios - NSURLSession crash with JSON data parameter is nil while error is managed

ios - 如何在重新进入查看时转储核心数据搜索结果 FRC?

ios - 核心数据数据加密

objective-c - 释放错误 [NSPersistentStoreCoordinator initWithManagedObjectModel]

ios - 如何将 segue 连接到不是第一个单元格的单元格上的披露指示器?

ios - 构建项目时 Nib 不是目录错误

ios - Xcode 6.0.1 - 要么卡在启动屏幕 xib 上,要么只显示黑屏。错误不知从何而来

ios - 与 Web 服务同步时使用 NSFetchedResultsController 的缓存