需要有关NSPredicate的帮助

时间:2014-09-30 10:03:43

标签: ios objective-c nspredicate

我有一个NSMutableArray,其中包含多个NSMutableDictonary个对象。我正在使用NSPredicate来查找数组

中是否存在具有特定键的字典
NSPredicate *pred = [NSPredicate predicateWithFormat:@"%@ IN self.@allKeys", users.cellNum];
    NSArray *predResult = [[[self appDelegate]mainArray] filteredArrayUsingPredicate:pred];
    BOOL success = predResult.count == 0;

    if(success) { 
}

它的工作正常,但是在predResult中我得到了整个对象,随着时间的增长,它将成为内存开销。

所以我只想知道数组中是否存在特定键的字典。我不想使用filteredArrayUsingPredicate获取任何对象。

1 个答案:

答案 0 :(得分:0)

     NSUInteger rowindex = [[[self appDelegate]mainArray] indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
            return [pred evaluateWithObject:obj];
        }];

这将返回整数和

 if(rowindex==0|| (rowindex>0&&rowindex<[[self appDelegate]mainArray].count)) {
// data found
}

如果发现数据,rowindex将大于零且小于数组计数