Core data 比较实体的字符串属性的更优雅的方法

Core data 比较实体的字符串属性的更优雅的方法,core-data,Core Data,亲爱的大家。 目前我需要从核心数据中提取必要的对象,但我在实体中只有属性名。要设置反向关系,我只找到一种方法来循环管理对象中的所有对象,比较字符串以检查必要的属性一致性和设置关系。愿有人有更好的办法。关系载体是NameTranslationRules实体的一部分,并连接到载体实体 NSManagedObjectContext *moc = [self managedObjectContext]; NSFetchRequest *request = [[[NSFetchRequest alloc

亲爱的大家。 目前我需要从核心数据中提取必要的对象,但我在实体中只有属性名。要设置反向关系,我只找到一种方法来循环管理对象中的所有对象,比较字符串以检查必要的属性一致性和设置关系。愿有人有更好的办法。关系载体是NameTranslationRules实体的一部分,并连接到载体实体

NSManagedObjectContext *moc = [self managedObjectContext]; 
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease]; 

   [request setEntity:[NSEntityDescription entityForName:@"Carriers"
                                   inManagedObjectContext:moc]];
    NSArray *carriers = [moc executeFetchRequest:request
                                               error:&error] ;

    for (NSManagedObject *carrier in carriers)
    {
        if ([[carrier valueForKey:@"name"] isEqualToString:[tempRules valueForKey:@"carrier"]]) [namesTranslationRules setValue:carrier forKey:@"carrier"];
    }

父对象在应用程序启动时创建为带有某些属性的载体名称。后来用户必须从另一个来源选择一个名称,根据用户的选择,我们必须添加适当的实体,这些实体已经存在父实体载体。

您所说的反向关系是什么意思?如果关系已经是双向的,则Core Data会自动为您设置反向关系

如果您指的是其他内容,您可以考虑在
NSFetchRequest
上使用谓词来预筛选对象并跳过字符串比较

更新1 您应该在创建时知道父对象,并且应该在创建时连接它们


数据从哪里来?

我指的是反向关系。当我在核心数据模型中添加新实体时,例如namesTranslationRules对象,我必须将其连接到实体,该实体是所添加实体的父实体。我正在使用一种方法,我在u书中看到过,它将NSManagedObject的值设置为适当的值,作为反向关系的键。要做到这一点,我需要从当前模型中提取这个对象,而bcs中只有属性名,我需要围绕它循环。