2016-08-05 16 views
0
NSArray *arrValues = [NSArray arrayWithObjects:@"ABCD",@"ABCE",@"CDE"]; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[cd]%@",@"ABC"];  
NSArray *arrFiltered = [arrValues filteredArrayUsingPredicate:predicate]; 

我知道arrFiltered將包含結果ABCD和ABCE。使用NSPredicate IOS的​​反數值

但是,我想要結果作爲CDE。

有沒有辦法找到指定的謂詞的逆。即,!(ABC)

回答

1

嘗試

[NSPredicate predicateWithFormat:@"SELF !=[c] %@",@"ABC"]; 

[c],使平等的比較不區分大小寫。

選項-2

NSArray *arrValues = [NSArray arrayWithObjects:@"ABCD",@"ABCE",@"CDE",nil]; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (SELF CONTAINS %@)",@"ABC"]; 
    NSArray *arrFiltered = [arrValues filteredArrayUsingPredicate:predicate]; 

你輸出

enter image description here

2

嘗試使用NOT謂語

NSArray *arrValues = [NSArray arrayWithObjects:@"ABCD",@"ABCE",@"CDE"]; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (SELF CONTAINS[cd] %@"),@"ABC"];  
NSArray *arrFiltered = [arrValues filteredArrayUsingPredicate:predicate]; 
+0

代碼崩潰'原因:'無法解析格式字符串'SELF NOT CONTAINS [cd]%@「'' –

+0

檢查一次,然後再次回答您的代碼崩潰終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:'無法解析格式字符串「NOT(CONTAINS%@)」'' –

+0

已更正。 –