我有一个数组。我想检查特定索引中是否存在对象。这该怎么做?请帮忙。
答案 0 :(得分:14)
如果您只是想检查是否有对象
if (myIndex < [array count])
如果你想找到一个特定的对象
[array indexOfObject:myObject];
如果你想知道某个索引处的对象是否属于某个类
[[array objectAtIndex:myIndex] isKindOfClass:[TheClassToCompareTo class]];
答案 1 :(得分:10)
BOOL exists = index < [array count] ? YES : NO;
答案 2 :(得分:3)
您可以使用containsObject
方法检查数组是否包含特定对象的天气。如果包含,则按indexOfObject
方法
if ([yourArrayArray containsObject:yourObject])
{
NSLog(@"Found");
int index = [yourArray indexOfObject:yourObject];
}
答案 3 :(得分:1)
我知道这是旧帖子,但只是想帮忙。
您可以将类别添加到NSArray
这样的内容
@implementation NSArray (Safe)
- (id)safeObjectAtIndex:(NSUInteger)index {
if (index >= [self count]) return nil;
return [self objectAtIndex:index];
}
@end
答案 4 :(得分: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值进行比较
答案 5 :(得分:0)
您应该检查数组的长度(使用count
方法)并且NSArray
不能包含nil
因此必须包含某些内容:
- (BOOL)arrayContainsSomethingAtIndex:(NSUInteger) index
{
return [_myArray count] > index;
}
答案 6 :(得分:0)
首先,您必须检查该对象的索引是否小于数组的大小,然后在该索引处查询该数组。
if (index < [array count] && [array objetAtIndex:index]){
/* Your code*/
}
答案 7 :(得分:0)
使用indexOfObject:方法。
if ([Array indexOfObject:object]==index) {
//code
}