在自定义NSMutableArray中声明属性

时间:2014-11-24 22:22:15

标签: ios objective-c nsmutablearray

我不太确定我是否应该为此提出另一个问题,或者在最后一个问题上进行扩展,如果我不打算,请纠正我。

我目前正在使用此代码:

if ([ myArray containsObject:@"Object1" ] && [ myArray containsObject:@"Object 2"]) {
return YES;
} 

else {
return NO;
}

我需要做的是修改它,以便遍历数组并访问Objects属性值。例如:

if (myArray contains obj.ID 1 & 2) {
    return YES
}
else{
    return NO;
}        

有关我应该注意什么的任何建议?我已经在这里工作了几个小时,尝试了不同的排列而没有运气。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用-indexOfObjectPassingTest:来检查具有特定属性值的对象是否在您的数组中。如果找到对象的索引,则返回该方法,否则返回NSNotFound。

因此,假设您的对象是例如NSDictionaries和他们有NSNumbers作为ID,你可以做这样的事情:

if([myArray indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
    return [[obj objectForKey:@"ID"] intValue]==1;
}]!=NSNotFound && [myArray indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
    return [[obj objectForKey:@"ID"] intValue]==2;
}]!=NSNotFound)
{
    //Array contains objects
}

答案 1 :(得分:1)

如果您只想要第一个对象,可以使用-indexOfObjectPassingTest:作为mpramat说。如果您希望数组中的所有对象都符合您的条件,请使用indexesOfObjectsPassingTest:

它需要一个块作为参数。该块评估每个对象并返回YES或者知道让该方法知道该对象是否应该是通过测试的对象集的一部分。