2016-11-13 50 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关键字来表达它,这正是我所得到的在。 –

相关问题