Objective-C NSMutableArray中Python的'dict.get('key',None)`的等价物?

时间:2014-08-25 16:37:48

标签: python ios objective-c

在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");
        }
    }
}

1 个答案:

答案 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)