更优雅的方式来比较实体的字符串属性

时间:2010-11-09 15:30:50

标签: core-data

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

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

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

1 个答案:

答案 0 :(得分:1)

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

如果您的意思是其他内容,您可以在NSFetchRequest上使用谓词预先过滤对象并跳过字符串比较。

更新1

您应该在创建时知道父对象,并且应该在那时连接它们。

数据来自哪里?