NSPredicate详解二
来源:互联网 发布:网络造谣大v 编辑:程序博客网 时间:2024/06/14 10:25
子查询(SUBQUERY)
子查询表达式提供一种将对检索结果进行手动后处理的操作封装进单条查询语句的方法。
NSMutableArray *personsForTest = [NSMutableArray arrayWithCapacity:10]; for (int i = 0; i < 10; i++) { Person *person = [[Person alloc] init]; person.age = (arc4random() % 50); person.name = [Person generateName]; person.gender = i%2?@"male":@"female"; NSLog(@"%@", [person description]); [personsForTest addObject:@[person]]; } NSPredicate * predicate = [NSPredicate predicateWithFormat:@"(SUBQUERY(SELF, $x, $x.age > %d).@count > 0)", 25]; NSArray * result = [personsForTest filteredArrayUsingPredicate:predicate]; NSLog(@"\nresult:\n%@", result);输出:
2013-12-09 10:53:29.177 ClangDemo[1622:d07] name:sle{sage:23gender:female2013-12-09 10:53:29.182 ClangDemo[1622:d07] name:vatouage:1gender:male2013-12-09 10:53:29.184 ClangDemo[1622:d07] name:kmozpage:38gender:female2013-12-09 10:53:29.186 ClangDemo[1622:d07] name:vfmvgage:40gender:male2013-12-09 10:53:29.187 ClangDemo[1622:d07] name:hasbaage:38gender:female2013-12-09 10:53:29.189 ClangDemo[1622:d07] name:yxjmnage:24gender:male2013-12-09 10:53:29.190 ClangDemo[1622:d07] name:{sgqhage:14gender:female2013-12-09 10:53:29.192 ClangDemo[1622:d07] name:wzueqage:36gender:male2013-12-09 10:53:29.193 ClangDemo[1622:d07] name:gnhusage:8gender:female2013-12-09 10:53:29.194 ClangDemo[1622:d07] name:depqyage:38gender:male2013-12-09 10:53:29.197 ClangDemo[1622:d07] result:( ( "\nname:kmozp\nage:38\ngender:female\n" ), ( "\nname:vfmvg\nage:40\ngender:male\n" ), ( "\nname:hasba\nage:38\ngender:female\n" ), ( "\nname:wzueq\nage:36\ngender:male\n" ), ( "\nname:depqy\nage:38\ngender:male\n" ))
集合操作语法(返回值为符合查询条件的集合)
操作符说明
- avg
计算集合中属性的平均值
[NSPredicate predicateWithFormat:@"employees.@avg.age = %d", 24]
- count
计算集合中的元素总数(不需要属性做参数)
[NSPredicate predicateWithFormat:@"(SUBQUERY(employees, $x, $x.age == %d).@count > 0)", 26]
- min
计算集合中元素的指定属性参数最小值
[NSPredicate predicateWithFormat:@"employees.@min.age = %d", 22]
- max
计算集合中元素的指定属性参数最大值
[NSPredicate predicateWithFormat:@"employees.@max.age = %d" , 22]
- sum
计算集合中所有元素指定属性值的和
[NSPredicate predicateWithFormat:@"employees.@sum.age > %d" , 100]
- NSPredicate详解二
- UISearchBar详解(二)数据刷选类:NSPredicate
- NSPredicate 详解
- NSPredicate详解(*@*)
- NSPredicate详解一
- iOS NSPredicate详解
- iOS 谓词 NSPredicate 详解
- iOS NSPredicate 详解
- iOS NSPredicate用法详解
- iOS NSPredicate 详解
- iOS NSPredicate 使用详解
- IOS NSPredicate 查询、搜索(详解)
- iOS NSPredicate详解(一)
- IOS NSPredicate 查询、搜索(详解)
- IOS NSPredicate 查询、搜索(详解)
- NSPredicate
- NSPredicate
- NSPredicate
- Cannot assign to 'self' outside of a method in the init family
- JAVA:注释规范
- 浏览器兼容判断
- Android service
- git常用命令
- NSPredicate详解二
- Makefile中的默认变量
- 7-关于GOP与RAP的一些解释
- MySQL 命令备忘
- 深度学习( Deep Learning )软件资源列表
- 利用开源更好的学习
- 在webxml中进行数据库参数配置,减少代码冗余
- 微信公众平台开发(一) 配置接口
- xcode添加framework 静态库用SRCROOT 相对路径