2013-11-27 26 views
0
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES[cd] %@ AND (NOT (SELF MATCHES[cd] %@))", [NSString stringWithFormat: @".*\\b%@.*", string],[NSString stringWithFormat: @".*\\[\\b%@.*", string]]; 

我的代碼有什麼問題?我不能在predicatewithformat中同時使用兩個運算符

+2

你絕對可以使用相同的nspredicate兩個條件。你面臨的問題是什麼? – manujmv

+0

謝謝你的回覆。我想在同一行使用AND,NOT運算符。如何使用那個。例如:(a)和(不是(a))。 –

回答

0

嘗試使用子查詢功能,它有助於你

[NSPredicate [email protected]"(add == %@) AND (SUBQUERY(subs, $x, $x.numbervalue == %@ or $x.numbervalue == %@)[email protected] > 0)", @"add",number1, number2]; 

另:

和&或者可以斷言格式字符串可以用來創建複合predicates。但是,使用NSCompoundPredicate也可以實現同樣的效果。

例如,下面的斷言是等價的:

[NSCompoundPredicate andPredicateWithSubpredicates:@[[NSPredicate predicateWithFormat:@"age > 25"], [NSPredicate predicateWithFormat:@"firstName = %@", @"Raja"]]]; 

[NSPredicate predicateWithFormat:@"(age > 25) AND (firstName = %@)", @"Raja"]; 

來源: Mattt Thompson

+0

謝謝您的回覆。我有一個像這樣的字符串「Raj Kumar [手機],Ram kumar [主頁]」。當我搜索一個字符「H」時,它顯示「Ram kumar [Home]」。如何避免這一點。我只想搜索名字和姓氏第一個字符。請幫幫我。 –

相關問題