获取具有不同数量参数的实体

时间:2014-06-02 22:40:27

标签: ios core-data

我有几个实体具有或多或少相同的参数但数量不同。

例如:

EntityA : model, code, color, name
EntityB : model, code, color, name, country
EntityC : model, code, color, name, country, style, date

因此,我没有为实体创建类,所以将东西添加到" entityA"通过这样做:

NSArray *keys = @[@"model", @"code", @"color", @"name"];

NSManagedObject *newObjectOnEntity = [NSManagedObject newObjectOnEntity:@"entityA"
inManagedObjectContext:self.managedObjectContext];

NSDictionary *dict = [NSDictionary dictionaryWithObjects:values forKeys:keys];
[newObjectOnEntity setValuesForKeysWithDictionary:dict];

我只是为键和值添加更多条目,我可以使用相同的代码向所有实体添加内容。

但现在是获取部分。

此时我需要做一个这样的提取,比如说实体A:

获取(model = "abc") && (code = "zoltrix") && (color = "blue") && (name = "roger")

的条目

如果实体是B,则获取也将具有&& (country = "usa"),如果实体是C,则还将具有样式和日期。

所以我要问的是,如果我可以在其中传递一个参数数组,一个值数组,并在该实体上搜索匹配所有参数和值的条目(parameter1 == value1) && (parameter2 == value2) ...

1 个答案:

答案 0 :(得分:0)

  

所以我要问的是,如果我可以在其中传递一个参数数组,一个值数组,并在该实体上搜索匹配所有参数和值的条目

当然可以。在NSPredicate语法中,您可以使用%K指定字段名称,使用%@(或其他格式说明符)指定值。

(请查看“Dynamic Property Names”中的“Predicate Programming Guide”。)