2012-08-09 65 views

回答

13

這將這樣的伎倆經濟最[測試]:

[myArray filteredArrayUsingPredicate:[NSPredicate 
    predicateWithFormat:@"self == %@", @"New"]]; 
0

我建議使用一個謂語塊

[array filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary * bindings){ 
    [evaluatedObject isEqual:anObject]; 
}]]; 
陣列過濾
1

爲什麼不只是做對象的快速列舉?

NSMutableArray *matchingObjects = [NSMutableArray array]; 
NSArray *objects = [NSArray arrayWithObjects:@"New", @"Old", @"Future", nil]; 
NSInteger count = 0; 
for (NSString *string in objects) { 
    if ([string isEqualToString:@"New"]) { 
     [matchingObjects addObject:string]; 
    } 
    count++; 
} 

這樣matchingObjects包含所有匹配的測試對象,並且可以使用count獲得所有比賽的索引。

+0

好回答,你也可以用[string containsString:]方法過濾對象 – 2015-12-07 07:18:11

3

納思如果已經添加字符串常量像@"New"然後

int index = [array indexOfObject:@"New"]; 

會做的伎倆爲

NSString *str1 = @"New"; 
NSString *str2 = @"New"; 

然後str1str2指向同一個對象。
如果你知道你正在搜索的字符串,那麼是否有任何需要找到它?
Mundi的回答也很好。

相關問題