8

我有一个数组。我想检查特定索引中是否存在对象。这个怎么做?请帮忙。

4

8 回答 8

15

如果您只想检查是否有对象

if (myIndex < [array count])

如果你想找到一个特定的对象

[array indexOfObject:myObject];

如果您想知道某个索引处的对象是否属于某个类

[[array objectAtIndex:myIndex] isKindOfClass:[TheClassToCompareTo class]];
于 2012-06-27T11:47:53.277 回答
10

BOOL exists = index < [array count] ? YES : NO;

于 2012-06-27T11:48:27.683 回答
3

您可以使用containsObject方法来检查您的数组是否包含特定对象的天气。indexOfObject如果包含,则通过方法获取其索引

if ([yourArrayArray containsObject:yourObject]) 
{
    NSLog(@"Found");
    int index = [yourArray indexOfObject:yourObject];     
}
于 2012-06-27T11:54:40.810 回答
1

我知道这是旧线程,但只是想提供帮助。

您可以将类别添加到NSArray这样的内容

@implementation NSArray (Safe)

- (id)safeObjectAtIndex:(NSUInteger)index {
    if (index >= [self count]) return nil;
    return [self objectAtIndex:index];
}

@end
于 2016-11-14T14:50:05.347 回答
0

像这样检查

if([array objectAtIndex:i]!= nil)
{
NSLog("Object present");
}
else{
NSLog("Object Not Present")
}

修改:你应该这样

if(i<=[array count]){
    if([array objectAtIndex:i]!= nil)
    {
    NSLog("Object present");
    }
    else{
    NSLog("Object Not Present")
    }
}

这不会引发异常,并且数组中的对象应与 nil 值进行比较

于 2012-06-27T11:48:19.690 回答
0

您应该检查数组的长度(使用该count方法)并给出NSArray不能包含nil它因此必须包含一些东西

- (BOOL)arrayContainsSomethingAtIndex:(NSUInteger) index
{
    return [_myArray count] > index;
}
于 2012-06-27T11:48:33.590 回答
0

首先,您必须检查该对象的索引是否小于数组的大小,然后查询该索引处的数组。

if (index < [array count] && [array objetAtIndex:index]){
/* Your code*/
}
于 2012-06-27T11:51:15.843 回答
0

使用indexOfObject:方法。

if ([Array indexOfObject:object]==index) {
        //code
    }
于 2012-06-27T11:56:55.507 回答