我有一个具有“名称”和“描述”的模型类。我想使用valueForKeyPath执行搜索。
例如,使用循环我会以这种方式执行搜索:
for(allModels中的模型模型){
if (mode.name == "name" || [absoluteURL rangeOfString:@"my_substring"].location == NSNotFound ) {
// put this model in a result list
}
}
现在,我该如何做同样的事情?
NSArray * result = [allModels valueForKeyPath:@“[collect]。{name == @”name“}”];
答案 0 :(得分:2)
您可以使用NSPredicate(下面的简化示例)。您可以添加多个谓词来实现您的喜好。
NSMutableArray *matchingItems = [NSMutableArray array];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"mode.name is[cd] %@", @"name"];
for (Model *model in allModels) {
if ([pred evaluateWithObject:model]) {
[matchingItems addObject:model];
}
}