[示例]NSPredicate基础-查询数组中负荷条件的子集
2016-01-10 21:44
399 查看
代码:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。 定义(最常用到的方法): NSPredicate这个类有点类似于数据库中的查询,是用于在一批内容中查询符合条件的子集,中文翻译成“谓词”。这个翻译实在让我感觉很别扭,虽然明知道和谓语这个词语没什么关系,但确实总让我感觉这是一个句子里面的成分。 我们有些时候会有一个对象的数组或者集合,然后希望从里面找出符合条件的集合,类似于做一次过滤操作。比如我有一批照片,希望能找出所有某一天里面拍摄的内容。 NSPredicate类的创建往往使用predicateWithFormat的方法,这个方法的使用有点类似于stringWithFormat方法。 */ //查询数组中含有“ang”的字符串 NSArray *array = [[NSArray alloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"wuhan", nil]; NSString *string = @"ang"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@",string]; NSLog(@"%@",[array filteredArrayUsingPredicate:pred]); ; //查找名字里面包含“王”的姓 NSArray *array1 = [[NSArray alloc]initWithObjects:@"小王",@"王力",@"李丽",@"方方", nil]; NSString *match = @"*王*"; //查找姓王的名字,王字必须为首字则修改NSString *match=@"王*"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@", match]; NSArray *results = [array1 filteredArrayUsingPredicate:predicate]; for (id str in results) { NSLog(@"%@",str); } } return 0; }
相关文章推荐
- 算法训练 回文数
- Python的MySQLdb模块安装
- 27.Android之ImageView获取图片学习
- maven权威指南学习笔记(一)——简介
- 使用.NET进行高效率互联网敏捷开发的思考和探索【一、概述】
- HPU:1863畅通工程(kruskal)
- 基础背包问题(01,完全,多重)
- <LeetCode OJ> 257. Binary Tree Paths
- VBScript.RegExp 正则表达式excel vba 学习经验
- 【UVa】[227]Puzzle
- C#中HttpWebRequest用Post提交Content-Type: multipart/form-data;
- OpenGL系统设计——求帧速度
- 创建带子菜单的选项菜单
- Mybatis深入之事务管理
- 非线性思维 -- 大前研一
- 等待队列 赏析
- Go 四篇
- [leetcode oj 191]Number of 1 Bits
- HPU:1232畅通工程(并查集)
- SSH框架