过滤包含自定义对象的NSArray

时间:2012-03-04 20:02:10

标签: objective-c ios nsarray

我有UISearchBarUITableView,这是一个返回NSMutableArray的网络服务,其中包含以下对象:

//Food.h
Food : NSObject { 
    NSString *foodName;
    int idFood;
}

@property (nonatomic, strong) NSString *foodName;

阵列:

Food *food1 = [Food alloc]initWithName:@"samsar" andId:@"1"];
Food *food2 = [Food alloc] initWithName:@"rusaramar" andId:@"2"];

NSSarray *array = [NSArray arrayWithObjects:food1, food2, nil];

如何使用名称以“sa”开头的对象过滤我的数组?

2 个答案:

答案 0 :(得分:25)

您可以使用以下代码过滤任何您想要的数组:

NSMutableArray *array = ...;

[array filterUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
    return [evaluatedObject.foodName hasPrefix:searchBar.text];
}];

这将“就地”过滤数组,并且只能在NSMutableArray上访问。如果您想要获取已为您过滤的新数组,请使用filteredArrayUsingPredicate: NSArray方法。

答案 1 :(得分:0)

.htaccess