iOS - 謂詞(NSPredicate)

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


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


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


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


  • 邏輯運(yùn)算法:
//謂詞不區(qū)分大小寫(xiě)&& 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];


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


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


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

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

  • 謂詞: 簡(jiǎn)單的說(shuō)就是一個(gè)過(guò)濾器, 符合條件的留下, 不符合條件的刪除 一. NSPredicate的基本語(yǔ)法 只要...
    風(fēng)冰武閱讀 1,863評(píng)論 0 5
  • 謂詞 首先,我們可以看看官方文檔的解釋 大概意思是: 一種邏輯條件的定義,用于約束查找或者內(nèi)存中篩選的搜索條件。個(gè)...
    浮生zZZ閱讀 785評(píng)論 0 1
  • 文檔定義 NSPredicate:A definition of logical conditions used ...
    lq_ios閱讀 934評(píng)論 0 0
  • NSPredicate類是用來(lái)定義邏輯條件約束的,通過(guò)定義邏輯條件進(jìn)行查詢與過(guò)濾。 基本語(yǔ)法 比較運(yùn)算符 比較運(yùn)算...
    山水域閱讀 4,361評(píng)論 0 25
  • 一 謂詞語(yǔ)法: 1.比較運(yùn)算符 =,=>:判斷左邊表達(dá)式的值是否大于或等于右邊表達(dá)式的值<=,=<:判斷右邊表達(dá)...
    iOS學(xué)末閱讀 763評(píng)論 0 4

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