繁体   English   中英

是否等效于Objective-C NSMutableArray中的Python的dict.get('key',None)`?

[英]Equivalent of Python's `dict.get('key', None)` in Objective-C NSMutableArray?

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

您可以使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM