在objective-c中是否有一种方法可以查询NSMutableArray
一个对象,如果我查询的索引超出范围,它不会崩溃,但返回一些预定义的值?
Python之类的东西用于dict
类型对象,你可以dictionary.get('key', None)
,如果密钥不在字典中,则返回None
。
我的用例是这样的(不是实际的代码):
@property (nonatomic, strong) NSMutableArray *array;
@property (nonatomic) int capacity;
- (void)viewDidLoad
{
self.array = [NSMutableArray array];
}
- (void)adder:(NSNumber)number
{
[self.array addObject:number];
}
- (void)checker
{
for (int i = 0; i < self.capacity; i++) {
if ([self.array someMethodToTellIfThereIsAValueAtIndex:i]) {
NSLog(@"We have a value");
}
}
}
答案 0 :(得分:2)
您可以检查indexOfObject
对象的索引,如果找不到该对象,将返回NSNotFound
。所以:
index = [self.array indexOfObject:someObject];
if(index != NSNotFound)
NSLog(@"We have a value at index %lu", index);
编辑:根据评论中的对话,您似乎想要检查索引中是否存在任何对象,而不是获取特定对象的索引。
为此,您需要做的就是确保您要检查的索引小于您要查询的数组的count
,并且是非负整数
if(i < self.array.count)