日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]Cocoa用NSPredicate描述查詢的方式,原理類似于在數(shù)據(jù)庫中進(jìn)行查詢計(jì)算謂詞://基本的查詢NSPredicate *predicate;predicate = [NSPredicate p

Cocoa用NSPredicate描述查詢的方式,原理類似于在數(shù)據(jù)庫中進(jìn)行查詢
計(jì)算謂詞:
//基本的查詢
NSPredicate *predicate;
predicate = [NSPredicate predicateWithFormat: @"name == 'Herbie'"];
????BOOL match = [predicate evaluateWithObject: car];
????NSLog (@"%s", (match) ? "YES" : "NO");
//在整個(gè)cars里面循環(huán)比較
????predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];
????NSArray *cars = [garage cars];
????for (Car *car in [garage cars]) {
????????if ([predicate evaluateWithObject: car]) {
????????????NSLog (@"%@", car.name);
????????}
????}
//輸出完整的信息
????predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];
????NSArray *results;
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);
//含有變量的謂詞
????NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:@"name == $NAME"];
????NSDictionary *varDict;
????varDict = [NSDictionary dictionaryWithObjectsAndKeys:
???????????????@"Herbie", @"NAME", nil];
????predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];
????NSLog(@"SNORGLE: %@", predicate);
????match = [predicate evaluateWithObject: car];
??NSLog (@"%s", (match) ? "YES" : "NO");
//注意不能使用$VARIABLE作為路徑名,因?yàn)樗荡碇?br />//謂詞字符竄還支持c語言中一些常用的運(yùn)算符
???
????predicate = [NSPredicate predicateWithFormat:
?????????????????@"(engine.horsepower > 50) AND (engine.horsepower < 200)"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"oop %@", results);
???
????predicate = [NSPredicate predicateWithFormat: @"name < 'Newton'"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", [results valueForKey: @"name"]);
//強(qiáng)大的數(shù)組運(yùn)算符
????predicate = [NSPredicate predicateWithFormat:
?????????????????@"engine.horsepower BETWEEN { 50, 200 }"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);
???
????NSArray *betweens = [NSArray arrayWithObjects:
?????????????????????????[NSNumber numberWithInt: 50], [NSNumber numberWithInt: 200], nil];
????predicate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN %@", betweens];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);
????predicateTemplate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN $POWERS"];
????varDict = [NSDictionary dictionaryWithObjectsAndKeys: betweens, @"POWERS", nil];
????predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);
//IN運(yùn)算符
????predicate = [NSPredicate predicateWithFormat: @"name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", [results valueForKey: @"name"]);
????predicate = [NSPredicate predicateWithFormat: @"SELF.name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", [results valueForKey: @"name"]);
???
????names = [cars valueForKey: @"name"];
????predicate = [NSPredicate predicateWithFormat: @"SELF IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
????results = [names filteredArrayUsingPredicate: predicate];//這里限制了SELF的范圍
????NSLog (@"%@", results);
//BEGINSWITH,ENDSWITH,CONTAINS
//附加符號,[c],[d],[cd],c表示不區(qū)分大小寫,d表示不區(qū)分發(fā)音字符,cd表示什么都不區(qū)分
????predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'Bad'"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);
???
????predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'HERB'"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);
???
????predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH[cd] 'HERB'"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);
//LIKE運(yùn)算符(通配符)
????predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '*er*'"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);
???
????predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '???er*'"];
????results = [cars filteredArrayUsingPredicate: predicate];
????NSLog (@"%@", results);

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉