В этом примере я пытаюсь получить все значения имени в 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
. Код ниже показывает, как я это делаю.
NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
for (id string in nameArray) {
if ([string isKindOfClass:[NSString class]]) {
[mutableArray addObject:string];
}
}