2016-11-13 87 views
0

我需要從Core數據中提取數據,爲此,我需要使用NSPredicate檢查Condition1和Condition 2。 但是我只需要在條件1滿足的情況下檢查條件2。 任何人都可以幫我實現這個場景嗎?NSPredicate with Multiple Condition - 根據第一個條件執行第二個條件

邏輯

If (Condition1 == true) 
{ 
    if(Condition2 == True) 
     { 
     } 
    else 
     { 
     //Code 
     } 
} 
else 
{ 
//codes 
} 

請幫我實現使用NSPredicate這種情況。

+0

所以,如果'(條件1 ==真)&&(條件2 ==真)',一些代碼;如果'(condition1 == true)&&(condition2 == false)',一些代碼; 'if(condition1 == false)&&(condition2 == true/false)',一些代碼正確嗎? – KrishnaCA

+0

'NSPredicate'可用於獲取或過濾數據。它不能執行代碼。 – Willeke

+0

@Willeke,還有'predicateWithBlock:'但我明白你的意思。 –

回答

1

只在謂詞格式字符串中使用AND表達式。 NSPredicate將這些視爲短路操作員。這是從Predicate Programming Guide: Using Predicates – Performance Considerations節這一建議暗示:

你應該結構的複合謂詞,以儘量減少做 的工作量。正則表達式匹配尤其是一個昂貴的操作 操作。在化合物謂詞,則應該因此正則表達式之前執行 簡單測試[...]:

在[...]例如,正則表達式[一個OR後]僅被評估,如果 第一個子句是假

(強調)

+0

[NSCompoundPredicate andPredicateWithSubpredicates:]是我認爲的調用 – Alex

+0

@Alex,是的,這是以編程方式構造謂詞的API,這當然是有效的。我認爲,更常見的是,謂詞是使用'[NSPredicate predicateWithFormat:@「...」]'構造的,在這種情況下,您只需要在字符串中使用AND關鍵字來表達它,這正是我所得到的在。 –

相關問題