在这个例子中,我尝试获取
dictionaries
里面
Array
. 以下代码工作正常。
NSArray *array = @[@{@"name" : @"joe"},
@{@"name" : @"john"},
@{@"name" : @"jack"}];
NSArray *nameArray = [array valueForKey:@"name"];
NSLog(@"name array is %@",nameArray);
但是,如果数组如下
NSArray *array = @[@{@"foo" : @"joe"},
@{@"foo" : @"john"},
@{@"foo" : @"jack"}];
我将得到一个空值数组。有没有办法检查
name
钥匙先存在?我提出的唯一解决方案是创建一个
NSMutableArray
循环遍历所有键并确保值不为空并将其添加到
非晶射线
. 下面的代码显示了我是如何做到这一点的。
NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
for (id string in nameArray) {
if ([string isKindOfClass:[NSString class]]) {
[mutableArray addObject:string];
}
}