如何使用数组中模型类的valueForKeyPath执行简单搜索?

时间:2009-09-04 11:37:27

标签: objective-c

我有一个具有“名称”和“描述”的模型类。我想使用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“}”];

1 个答案:

答案 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];
    }
}