iOS - 謂詞(NSPredicate)

什么是謂詞?
  • 謂詞是通過NSPredicate類,指定的邏輯條件作為約束條件,完成對數(shù)據(jù)的篩選。
  • Cocoa中提供了NSPredicate類,指定過濾器的條件,將符合條件的對象保留下來。


  • 判斷是否滿足條件:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age<25"];
    for (Person *p in arrar) {
        BOOL result = [predicate evaluateWithObject:p];
            if (result) {
            NSLog(@"符合條件:%@",p);
    }
}


  • 對數(shù)組過濾:
//將符合條件的保留
[arrar filterUsingPredicate:predicate];
//返回新的數(shù)組
NSArray * arr = [array filteredArrayUsingPredicate:predicate];
NSLog(@"返回新的數(shù)組:%@",arr);


  • 格式占位符:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age <= %d",30];


  • 邏輯運算法:
//謂詞不區(qū)分大小寫&& AND || OR
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name > 'bruse' && age < %d",30];


  • IN:
//關(guān)鍵字 注意字符串一定要添加''
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name IN {'rose', 'bruse'}"];
//{}可以是數(shù)組
NSArray * array = @[@"1",@"2",@"3",@"4"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name IN %@",array];


  • 以**開始 -- BEGINSWITH
//檢查某個字符串以「A」開頭
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name BEGINSWITH ‘A’"];


  • 以**結(jié)束 -- ENDSWITH
//檢查某個字符串以「Z」開頭
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name ENDSWITH ‘Z’"];


  • 模糊查找 Like
NSString * str = @"a";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like ‘*%@*’",str];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容