我有一个数组。我想检查特定索引位置是否存在对象。如何做到这一点?请帮忙。
如果你只想检查是否存在一个对象
if (myIndex < [array count])
如果你想找到一个特定的对象
[array indexOfObject:myObject];
如果你想知道某个索引处的对象是否属于某个类
[[array objectAtIndex:myIndex] isKindOfClass:[TheClassToCompareTo class]];
NSArray
不能包含 nil
。 - trojanfoeBOOL exists = index < [array count] ? YES : NO;
您可以使用containsObject
方法来检查数组是否包含特定对象。如果包含,则通过indexOfObject
方法获取其索引。
if ([yourArrayArray containsObject:yourObject])
{
NSLog(@"Found");
int index = [yourArray indexOfObject:yourObject];
}
-[NSArray containsObject:]
行,并检查-[NSArray indexOfObject:]
是否返回了NSNotFound
。 - user7085621我知道这是一个旧的帖子,但只是想帮忙。
您可以像这样向NSArray
添加一个类别
@implementation NSArray (Safe)
- (id)safeObjectAtIndex:(NSUInteger)index {
if (index >= [self count]) return nil;
return [self objectAtIndex:index];
}
@end
像这样检查
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
,因此你可以使用 [array count]
来计算数组元素的数量,并使用 if 条件语句。 - SumanthobjectAtIndex
会像我第一条评论中所描述的那样引发异常,而且NSArray
不能包含nil
,因此也行不通。 - trojanfoeNSArray
不能包含 nil
,此外 <=
是错误的,应该改为 <
。 - trojanfoecount
方法),由于NSArray
不能包含nil
,因此它必须包含某些内容:- (BOOL)arrayContainsSomethingAtIndex:(NSUInteger) index
{
return [_myArray count] > index;
}
if (index < [array count] && [array objetAtIndex:index]){
/* Your code*/
}
if([Array indexOfObject:obj] == index)
吗? - gtmtg