iOS 数组 filter 对象
2016-04-19 09:37
375 查看
通常情况下,根据一个条件在数组中查询出匹配的对象的方式有如下几种:
(1)遍历数组,然后将每一个Item和这个条件进行比对,过滤出匹配的对象
显然这个效率比较低
(2)iOS提供另一个效率较高的查询方法,谓词NSPredicate,使用方法如下
C代码
1.NSString 对象
NSArray *array =@["123", @"234" , @"345"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@", "2"];
NSArray *filterdArray = [array filterdArrayUsingPredicate:predicate];
NSLog(@"%@", filterdArray );
//output : @"123", "234"
2.含有属性的对象
@interface Person: NSObject
{
NSString *_name;
NSString *_telephone;
NSInteger _id;
}
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *telephone;
@property (nonatomic, assign) NSInteger id;
@end
//
1).等于查询
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", "Ansel"];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
2).模糊查询
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS %@", @"A"]; //predicate只能是对象
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
(1)遍历数组,然后将每一个Item和这个条件进行比对,过滤出匹配的对象
显然这个效率比较低
(2)iOS提供另一个效率较高的查询方法,谓词NSPredicate,使用方法如下
C代码
1.NSString 对象
NSArray *array =@["123", @"234" , @"345"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@", "2"];
NSArray *filterdArray = [array filterdArrayUsingPredicate:predicate];
NSLog(@"%@", filterdArray );
//output : @"123", "234"
2.含有属性的对象
@interface Person: NSObject
{
NSString *_name;
NSString *_telephone;
NSInteger _id;
}
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *telephone;
@property (nonatomic, assign) NSInteger id;
@end
//
1).等于查询
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", "Ansel"];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
2).模糊查询
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS %@", @"A"]; //predicate只能是对象
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
相关文章推荐
- iOS酷炫动画效果合集
- IOS路线图
- iOS线程间通信
- 【代码笔记】iOS-离线地图
- iOS开发中本地数据存储的 ios登录成功后将用户的数据存储到本地 下次打开应用时不用重复登录了
- iOS学习笔记36-Masonry自动布局
- iOS学习笔记36-Masonry自动布局
- iOS自动打包[转载]
- iOS之NSOperation的简单介绍
- iOS 图片背景模糊效果
- HARK学习(六)--AudioStreamFromWave
- Github 上的 iOS 开源项目
- iOS关闭键盘 return 或者 点击背景
- IOS自定义控件某些区域无法点击的原因
- 关于iOS开发中图片着色(变色)的问题
- iOS 如何把view转成image,截屏分享/ 整个视图的分享。
- iOS开发- 拨打电话总结
- 配置openfire相关设置(IOS)
- iOS _BSMachError: (os/kern) invalid capability (20)
- ios 中在容器中移除单个控件的两个方法Subview