iOS中謂詞的使用

2022-08-01 13:00:18 字數 1410 閱讀 1272

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

1,用predicatewithformat建立乙個謂詞

nsstring *predicatestring =@"name=='herbie'"

nsstring *predicatestring =@"engine.horsepower > 150" 屬性值

nsstring *predicatestring =@"(engine.horsepower > 50) and (engine.horsepower     < 200)";可以運用運算子

nsstring *predicatestring =@"engine.horsepower between ";這裡可以運用between關鍵字。和上面效果一樣

nsstring *predicatestring =@"name in ";包含在其中用in

nsstring *predicatestring =@"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);

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 謂詞的使用

剛入行的小女人,希望以後大家多多關照,把每天學到的知識記錄下,方便以後使用,有不對的地方希望大家多多指點,小女感激不盡。今天剛剛學了謂詞的使用,記錄下。返回乙個符合謂詞條件的陣列 nsarray newarray array filteredarrayusingpredicate predicate...

iOS謂詞的簡單使用

謂詞 條件篩選 nsstring adc 123 判斷字串是不是以xx開頭 yes是 bool result adc hasprefix 1 判斷字串是不是以xx結尾 adc hassuffix 3 nslog d result 謂詞 用法接近於sqlite都是通過對應的語句來進行篩選和查詢 建立謂...

iOS中的謂詞NSPredicate

nspredicate的坑,正規表示式無論是否新增 或 系統會自動新增開始字元和結束字元,和我們平常使用的不太一樣,所以要寫出完整的匹配表示式。nsstring regex u4e00 u9fa5a za z nspredicate predicate nspredicate predicatewi...