使用自定义对象属性过滤数组

时间:2014-02-05 08:53:32

标签: ios ios7

我有一个对象数组。每个对象都有自己的属性(name,desc,status)。 namedescNSStringstatusBOOL

我想通过status属性过滤此数组。例如:使用status == YES获取所有对象。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:8)

尝试使用NSPredictate

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"status = %@", @"YES"];
NSArray *filterArray = [array filteredArrayUsingPredicate:predicate];

这将为您提供一个数组,其中所有对象的状态均为YES。

答案 1 :(得分:1)

试试这个,

NSPredicate *predicate =[NSPredicate predicateWithFormat:@"status = YES"];
NSArray *filteredArray = [yourArray filteredArrayUsingPredicate:predicate];

答案 2 :(得分:-1)

嗨,你可以试试这个,

NSMutableArray *array =[NSMutableArray arrayWithObjects:@"Apple", @"Animal", @"baby", @"ball", nil];

NSPredicate *aPredicate =
    [NSPredicate predicateWithFormat:@"SELF beginswith[a] 'b'"];
NSArray *beginWithA =
    [array filteredArrayUsingPredicate:aPredicate];

The beginWithA array will have { @"Apple", @"Animal" }.

NSPredicate *bPredicate =
    [NSPredicate predicateWithFormat:@"SELF contains[b] 's'"];
[array filterUsingPredicate:bPredicate];
The array will have { @"baby", @"ball" }

由于