在NSMutableArray中搜索对象(通过属性)

时间:2013-08-14 08:14:48

标签: objective-c nsmutablearray

我需要一种更好的方法来在NSMutableArray中找到一个对象。

目前我这样做:

for(classOfTheObject *thisItem in arrayOfObjects){
    if(thisItem.foreign_key == serchThisObject.foreign_key){
        // found it
    }
}

但我认为这是一种非常糟糕的方式。是否可以在没有for循环的情况下获取对象?

2 个答案:

答案 0 :(得分:1)

在数组中,它总是需要某种类型的循环/枚举来实际找到它。如果foreign_key是您使用的唯一搜索/标识条件,那么您可以考虑使用值为NSDictionary的{​​{1}}作为关键字。

答案 1 :(得分:0)

如果我是你,我会使用NSPredicate:

NSPredicate *applePred = [NSPredicate predicateWithFormat:
                                  @"employer.name == 'Apple'"];
NSArray *appleEmployees = [people filteredArrayUsingPredicate:applePred];