謂詞提供可可指定查詢的通用方法。謂詞系統(tǒng)能夠處理大量的域嗡髓,包括核心數(shù)據(jù)和聚焦操漠。本文檔描述謂詞在一般情況下,它們的使用饿这,它們的語法浊伙,和它們的局限性。
一眼望過去
在可可长捧,一個(gè)謂語是計(jì)算結(jié)果為布爾值(true或false)一個(gè)邏輯語句嚣鄙。有兩種類型謂詞 ??的,被稱為比較和化合物:
一個(gè)比較謂詞比較兩個(gè)表達(dá)式使用操作符串结。表達(dá)式被稱為左手側(cè)和謂詞的右手側(cè)(在中間的操作者)哑子。比較謂詞返回調(diào)用操作與評估表達(dá)式的結(jié)果的結(jié)果。
一個(gè)復(fù)合謂語比較評估其他兩個(gè)以上的謂詞的結(jié)果奉芦,或否定另一個(gè)謂詞赵抢。
可可支持多種類型的謂語,其中包括以下內(nèi)容:
簡單的比較声功,如等級== 7或的firstName像'馬克'
案例或變音符號不敏感的查詢烦却,如名稱中包含[CD]“雪鐵龍”
邏輯運(yùn)算,諸如(名字beginswith“M”)及(lastName的像'阿德利')
您還可以創(chuàng)建謂詞的關(guān)系先巴,如group.name匹配'的工作其爵。*“,所有children.age>12伸蚯,和任何children.age> 12-和進(jìn)行諸如@ sum.items.price<1000摩渺。
可可謂詞提供的方式應(yīng)是獨(dú)立于用來容納被搜索的數(shù)據(jù)的商店編碼的查詢的裝置。您可以使用謂詞來表示用于約束集通過Spotlight和核心數(shù)據(jù)檢索對象的邏輯條件剂邮,并在內(nèi)存中過濾的對象摇幻。
您可以使用謂詞與任何類的對象,而是一個(gè)類必須是鍵-值編碼兼容您希望在謂語使用的鍵挥萌。
謂詞類
可可提供NSPredicate和它的兩個(gè)子類绰姻,NSComparisonPredicate和NSCompoundPredicate。
該NSPredicate類提供的方法來評價(jià)一個(gè)謂語引瀑,并創(chuàng)建一個(gè)謂語從字符串(如的firstName像'馬克')狂芋。當(dāng)您從一個(gè)字符串創(chuàng)建一個(gè)謂語,NSPredicate為您創(chuàng)建相應(yīng)的謂詞和表達(dá)情況憨栽。在某些情況下帜矾,你想創(chuàng)建比較或復(fù)合謂詞自己翼虫,在這種情況下,你可以使用NSComparisonPredicate和NSCompoundPredicate類屡萤。
在可可謂詞表達(dá)式是由的實(shí)例表示NSExpression類珍剑。最簡單謂詞表達(dá)式表示為恒定值。頻繁灭衷,不過次慢,使用該檢索,在上游目前正在評估所述對象的關(guān)鍵路徑的值的表達(dá)式翔曲。還可以創(chuàng)建表示在謂詞目前正在評估的對象,以用作占位符的變量劈愚,或返回一個(gè)陣列上執(zhí)行操作的結(jié)果的表示瞳遍。