我有几个实体具有或多或少相同的参数但数量不同。
例如:
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) ...
答案 0 :(得分:0)
所以我要问的是,如果我可以在其中传递一个参数数组,一个值数组,并在该实体上搜索匹配所有参数和值的条目
当然可以。在NSPredicate
语法中,您可以使用%K
指定字段名称,使用%@
(或其他格式说明符)指定值。
(请查看“Dynamic Property Names”中的“Predicate Programming Guide”。)