2015-04-27 43 views
0

我有一個標籤屬性分配給它們的對象的NSMutableArray。我試圖找出這些對象中是否有一個標籤分配給它們的字符串值「a」。使用謂詞來查找字符串值是否存在

到目前爲止我的代碼:

for (Object *object in self.array) 
    { 
     NSDictionary *attrs = [object propertyValue:@"attrs"]; 
     NSString *tag = attrs[@"tag"]; 
    } 

我可以這樣做:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"a"]; 
NSArray *results = [self.array filteredArrayUsingPredicate:predicate]; 

不知道它是如何工作?

回答

2

試試這個

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tag == %@", @"a"]; 
NSArray *result = [NSMutableArray arrayWithArray:[self.array filteredArrayUsingPredicate:predicate]]; 

使用'含有[C]'代替'==',如果你想執行不區分大小寫的搜索。 如果要過濾任何其他屬性,請用該屬性名稱替換「標記」。

0

你需要做更多的事情,如:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.property_name contains[c] '%@'", @"a"]; 
NSArray *result = [NSMutableArray arrayWithArray:[self.array filteredArrayUsingPredicate:predicate]];