objective-c - 过滤包含自定义对象的 NSArray

标签 objective-c ios nsarray

我有 UISearchBarUITableView,这是一个返回包含如下对象的 NSMutableArray 的 Web 服务:

//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”开头的对象过滤我的数组?

最佳答案

您可以使用以下代码过滤任意数组:

NSMutableArray *array = ...;

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

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

关于objective-c - 过滤包含自定义对象的 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558335/

相关文章:

cocoa - 检查 NSString 实例是否包含在 NSArray 中

ios - iTunes 连接 : You must have only 1 Leaderboard as default

objective-c - objective-c 中的日期时间问题

iphone - 设备上的 NSTimer 比模拟器上的慢

ios - 如何在viewForHeaderInSection中设置变量,然后在cellForRowAtIndexPath中使用它?

ios - 从没有时间戳和文件扩展名的 url 获取文件名 - Objective C

ios - UIDatePicker 重新定位到 View 底部

objective-c - 空 NSIndexSet 传递给 NSArray objectAtIndexes,返回 nil 或空 NSArray?

c++ - 你能帮我将 b2Vec2 存储在 NSArray 中吗?

objective-c - mount_smbfs 上出现身份验证错误