如何按对象的属性过滤NSArray中的对象

时间:2011-11-11 16:30:29

标签: objective-c xcode nsmutablearray nsdictionary

我有一个名为MyObject的对象,有2个属性MyObject.name,MyObject.ID 我还有一个NSMutableArray对象MyObjects来存储MyObject对象实例。

现在,我想过滤掉MyObjects中MyObject.name包含char @“a”的所有实例,我该怎么办呢?我试过NSDictionary& NSPredicate方法但都失败了。

你知道吗?非常感谢〜

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,但这是一个我头脑中的想法。您可以遍历MyObjects NSMutable数组中的所有对象,然后编写逻辑以在每个MyObject.name中搜索@“a”,然后将不包含@“a”的那些存储在新数组中。

// note using ARC
NSMutableArray *myFilteredObjects = [[NSMutableArray alloc] init];
for(MyObject *myObject in MyObjects)
{
    NSRange *range = [myObject.name rangeOfString:@"a"];

    if(range.location == NSNotFound)
    {
        // add object to new array if it doesn't contain @"a"
        [myFilteredObjects addObject: myObject];
    }
}

// do what you want with filtered objects array