学习笔记、、、谓词的用法、、、、、、、
来源:互联网 发布:小语种就业前景知乎 编辑:程序博客网 时间:2024/05/09 11:46
// Person.h
// NSPredicate
//
// Created by lceboy on 13-5-20.
// Copyright (c) 2013年 p. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person :NSObject
@property(nonatomic,copy)NSString *name;
@property(nonatomic,retain)NSNumber *age;
@end
// NSPredicate
//
// Created by lceboy on 13-5-20.
// Copyright (c) 2013年 p. All rights reserved.
//
#import "Person.h"
@implementation Person
-(NSString*)description{
NSString *s = [NSStringstringWithFormat:@"name=%@,age=%@",_name,_age];
return s;//重点理解
}
@end
/***************************谓词的使用方法************************/
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc,const char * argv[])
{
@autoreleasepool {
//、、、、、、、、通过循环把创建的对象存入数组array、、、、、、、、、
NSMutableArray *array = [NSMutableArrayarray];
for (int i=0; i<10; i++) {
Person *person = [[Personalloc]init];
if (i<5) {
person.name = [NSStringstringWithFormat:@"jack-%d",i];
}else{
person.name = [NSStringstringWithFormat:@"tom-%d",i];
}
person.age =@(20+i);
[arrayaddObject:person];
[personrelease];
}
//一、、、、、、、、判断是否满足条件、、、、、、、、、、、、、、、、
//元算符 // NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age<%d",25];
//NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age<%d&&age>%d",25,21];
//、、、、、、、、、、、、、、in、、、、、、、、、、、、
//NSArray *inArray = @[@"tom-8",@"jack-3",@"jack-23"];
//NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name in %@",inArray];
//NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name in {'tom-8','jack-3','tom-6'}"];
//、、、、、、、、1,BEGINSWITH 2,ENDSWITH 3,CONTAINS 4,like 关键字、、、、、、、、、、、、、、、
//NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name BEGINSWITH 'j'||name BEGINSWITH 't' "];
//NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name ENDSWITH '8' "];
//NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS 'a' "];
//NSString *string = [NSString stringWithFormat:@"name like '*%@*' ",@"a"];
//NSPredicate *predicate = [NSPredicate predicateWithFormat:string];
NSPredicate *predicate = [NSPredicatepredicateWithFormat:@"name like '*a*'"];
for (Person*pin array){
BOOL flag = [predicate evaluateWithObject:p];
if (flag) {
NSLog(@"%@", p);
}
}
//二、、、、、、、、、、、、、、、、、、、对数组过滤、、、、、、、、、、、、、、、、、、、、、
NSArray *filterArray=[array filteredArrayUsingPredicate:predicate];
NSLog(@"%@",filterArray);
}
return 0;
}
参考结果---------
2013-05-20 21:33:57.805 NSPredicate[427:303] name=jack-0,age=20
2013-05-20 21:33:57.807 NSPredicate[427:303] name=jack-1,age=21
2013-05-20 21:33:57.807 NSPredicate[427:303] name=jack-2,age=22
2013-05-20 21:33:57.808 NSPredicate[427:303] name=jack-3,age=23
2013-05-20 21:33:57.808 NSPredicate[427:303] name=jack-4,age=24
2013-05-20 21:33:57.809 NSPredicate[427:303] (
"name=jack-0,age=20",
"name=jack-1,age=21",
"name=jack-2,age=22",
"name=jack-3,age=23",
"name=jack-4,age=24"
)
- 学习笔记、、、谓词的用法、、、、、、、
- IOS学习笔记:谓词的使用
- NSPredicate谓词的用法
- iOS学习笔记39-iOS开发,谓词(NSPredicate)的用法:(二)谓词和正则表达式配合使用,进行表单内容判断
- objetive-c 谓词学习笔记
- IOS学习笔记之谓词
- IOS之谓词的用法
- Object-C 学习笔记(三十二)--- 谓词:NSPredicate
- C++学习笔记32 谓词函数
- NSPredicate谓词的用法 数组过滤
- iOS---NSPredicate谓词的用法 数组过滤
- STL学习笔记之顺序容器sort方法里的谓词参数的理解
- iOS学习笔记-036.NSPredicate——谓词
- 【SQL Server学习笔记】16:谓词和运算符
- 【iOS开发技术】NSPredicate谓词的用法 数组过滤
- 【iOS开发技术】NSPredicate谓词的用法 数组过滤
- 【iOS开发技术】NSPredicate谓词的用法 数组过滤
- 谓词的经典用法——数组专用过滤器
- 如何同时支持IOS5和IOS6上的屏幕旋转?
- red hat9的问题
- C++数据结构与程序设计学习1-设计一个stack类(顺序实现)
- 字符设备驱动基础知识(设备号-设备文件)
- 定制新设备 (Configuring a New Product)
- 学习笔记、、、谓词的用法、、、、、、、
- 杂记 近来随笔
- org.xmlpull.v1.XmlPullParserException: Error parsing document. (position:line -1, column -1) 解决方案
- ACM博弈
- AES加密解密Android版
- 安卓巴士自测试题---第十六期
- linux环境下 C++性能测试工具 gprof + kprof + gprof2dot
- Linux下Android真机调试(Ubuntu,真机随意,包括arm板)
- 重载(overload)、覆盖(override)、隐藏(hide)的区别