简体   繁体   English

核心数据保存实体问题

[英]Core data save entity issue

This might be a very primitive question. 这可能是一个非常原始的问题。 I have a list of states that belongs to different countries. 我有一个属于不同国家的州清单。

Data 1: state - xyz
        country - A

Data 2 : state - abc
         country - B

Data 3: state - ght
        country - A

Data 2 : state - ase
         country - B

In core data i have differnt entities for state and country. 在核心数据中,我具有州和国家/地区的不同实体。 While saving how do i put all the states to their country object? 在保存的同时,我如何将所有州置于其国家对象上?

EDIT : Country state relation 编辑:国家/地区关系

在此处输入图片说明

Assuming Data is Array of Dictionary, 假设数据是字典数组,

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"]];
        }
    }
}

Hope this may help you 希望这对您有帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM