iOS中謂詞的使用

來源:互聯網
上載者:User

標籤:

Cocoa提供了一個類NSPredicate類,該類主要用於指定過濾器的條件,該對象可以準確的描述所需條件,對每個對象通過謂詞進行篩選,判斷是否與條件相匹配。謂詞表示計算真值或假值的函數。在cocoa中封裝的一個資料庫架構cocoaData裡面 在進行查詢(包括模糊查詢)時同樣會要用到謂詞;下面對謂詞的使用方法及規則進行簡要的介紹下:

1,用predicateWithFormat建立一個謂詞

  • 條件

       NSString *predicateString [email protected]"name==‘Herbie‘"

       NSString *predicateString [email protected]"engine.horsepower > 150" 屬性值

       NSString *predicateString [email protected]"(engine.horsepower > 50) AND (engine.horsepower     < 200)";可以運用運算子

       NSString *predicateString [email protected]"engine.horsepower BETWEEN { 50, 200 }";這裡可以運用between關鍵字。和上面效果一樣

       NSString *predicateString [email protected]"name IN { ‘Herbie‘, ‘Snugs‘, ‘Badger‘, ‘Flap‘ }";包含在其中用IN

       NSString *predicateString [email protected]"name BEGINSWITH ‘Bad‘";字串運算子BEGINSWITH,ENDSWITH,CONTAINS[c][d][cd]

           BEGINSWITH:檢查某個字串是否以另一個字串開頭。

           ENDSWITH:檢查某個字串是否以另一個字串結尾。

           CONTAINS:檢查某個字串是否以另一個字串內部。

           [c]不區分大小寫[d]不區分發音符號即沒有重音符號[cd]既不區分大小寫,又不區分發音符號。

 

  • 建立謂詞

       NSPredicate *predicate=[NSPredicate predicateWithFormat:predicateString]

       results = [cars filteredArrayUsingPredicate: predicate];

       NSLog (@"%@", results);

  • like的使用

       predicate = [NSPredicate predicateWithFormat:@"name LIKE[cd] ‘*er*‘"];//*代表萬用字元Like還接受[cd].

       results = [cars filteredArrayUsingPredicate: predicate];

       NSLog (@"%@", results);

       predicate = [NSPredicate predicateWithFormat:@"name LIKE[cd] ‘???er*‘"];//?只匹配一個字元並且還可以接受[cd].

       results = [cars filteredArrayUsingPredicate: predicate];

       NSLog (@"%@", results);

iOS中謂詞的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.