资源描述:
《NSPredicate谓词查询》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、谓词:在计算机语言的环境下,谓词是指条件表达式的求值返回真或假的过程。 Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤器。 根据条件查询name=‘德玛’ NSString*sqlString=@"select*fromStudentwherename='德玛'"; sqlite3_prepare(db,sqlString.UTF8String,-1,&stmt,NULL) 在没有用这个类时,我们要获取两个数组中某些特定的元素时,需要写代码一一对比,但是使
2、用了这个类,只需要三四行代码就够了。 在iOS开发中,系统提供了NSPredicate这个类给我们进行一些匹配、筛选操作,非常方便。 创建了6个学生,并初始化,存放到数组中 Student*stu1=[StudentstudentWithName:@"li"age:8gender:@"nan"]; Student*stu2=[StudentstudentWithName:@"li"age:10gender:@"nv"]; Student*stu3=[StudentstudentWithName:@"wang"age
3、:12gender:@"nan"]; Student*stu4=[StudentstudentWithName:@"wang"age:14gender:@"nan"]; Student*stu5=[StudentstudentWithName:@"zhang"age:16gender:@"nv"]; Student*stu6=[StudentstudentWithName:@"zhang"age:18gender:@"nan"]; Student*stu7=[StudentstudentWithName:@"zha
4、o"age:20gender:@"nv"]; Student*stu8=[StudentstudentWithName:@"zhao"age:22gender:@"nan"]; Student*stu9=[StudentstudentWithName:@"sun"age:24gender:@"nv"]; Student*stu10=[StudentstudentWithName:@"sun"age:26gender:@"nan"]; NSArray*studentAry=@[stu1,stu2,stu3,stu4,
5、stu5,stu6,stu7,stu8,stu9,stu10]; 在不使用NSPredicate这个类的时候,要获取数组中学生姓名是li的人,我们这样做 NSMutableArray*liAry=[NSMutableArrayarray]; for(Student*studentinstudentAry){ if([student.nameisEqualToString:@"li"]){ [liAryaddObject:student]; } } NSLog(@"姓名是l
6、i%@",liAry); 在不使用NSPredicate这个类的时候,要获取数组中学生姓名以z开头的人,我们这样做 NSMutableArray*zAry=[NSMutableArrayarray]; for(Student*studentinstudentAry){ NSString*name =student.name; NSString*firstLetter=[namesubstringToIndex:1]; if([firstLetterisEqualToString:@"z"
7、]){ [zAryaddObject:student]; } } NSLog(@"姓名以z开头%@",zAry); 在不使用NSPredicate这个类的时候,要获取数组中学生姓名以g结尾的人,我们这样做 NSMutableArray*gAry=[NSMutableArrayarray]; for(Student*studentinstudentAry){ NSString*name =student.name; NSString*lastLetter=[n
8、amesubstringFromIndex:name.length-1]; if([lastLetterisEqualToString:@"i"]){ [gAryaddObject:student]; }