2013-10-16 42 views
0

我是新來NSPredicate很抱歉,如果我問愚蠢的問題搜索的NSArray。我有兩個的NSArray(keyArray和valueArray)。我一直在使用keyArray找到匹配的valueArray。下面的代碼工作正常,但我要搜索一個接一個。任何方式使用不同的鍵陣列來搜索數組。使用NSPredicate

 NSPredicate *userPredicate = [NSPredicate predicateWithFormat:@"companyId = %@", [[[self selectedCompanies] objectAtIndex:0] companiesIdentifier]]; 
    NSLog(@"Users: %@", [[[self userData] users] filteredArrayUsingPredicate:userPredicate]); 

    NSPredicate *userPredicate1 = [NSPredicate predicateWithFormat:@"companyId = %@", [[[self selectedCompanies] objectAtIndex:1] companiesIdentifier]]; 
    NSLog(@"Users: %@", [[[self userData] users] filteredArrayUsingPredicate:userPredicate1]); 

回答

1

你可以這樣做:

NSPredicate *userPredicate1 = [NSPredicate predicateWithFormat:@"companyId IN %@", [[self selectedCompanies] valueForKey:@"companiesIdentifier"]; 
NSLog(@"Users: %@", [[[self userData] users] filteredArrayUsingPredicate:userPredicate1]); 

這裏發生的是我們將根據這些標識符的所有選擇公司和匹配用戶的companiesIdentifier

valueForKey:陣列對象上返回與陣列中的每個對象所要求的密鑰的值的數組。 IN是謂詞操作者集合中搜索(數組,集合,等等)。