NSDictionary - нужно проверить, содержит ли словарь пара ключ-значение или нет
Мне просто нужно спросить что-то, как следует.
Предположим, у меня есть словарь.
NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];
[xyz setValue:@"sagar" forKey:@"s"];
[xyz setValue:@"amit" forKey:@"a"];
[xyz setValue:@"nirav" forKey:@"n"];
[xyz setValue:@"abhishek" forKey:@"a"];
[xyz setValue:@"xrox" forKey:@"x"];
Теперь мне нужно проверить следующее:
[xyz does содержит значение ключа "b"? пара или нет?
Вопрос: как?
Другой вопрос: как просто подсчитать общую пару ключ-значение?
Скажем, например, NSInteger mCount=[xyz keyCounts];
Ответы
Ответ 1
Просто спросите его objectForKey:@"b"
. Если он возвращает nil
, объект не будет установлен на этом ключе.
if ([xyz objectForKey:@"b"]) {
NSLog(@"There an object set for key @\"b\"!");
} else {
NSLog(@"No object set for key @\"b\"");
}
Изменить. Что касается отредактированного второго вопроса, просто NSUInteger mCount = [xyz count];
. Оба этих ответа хорошо документированы и легко найдены в справочной системе NSDictionary ( [1] [2]).
Ответ 2
С литеральным синтаксисом вы можете проверить следующее
static const NSString* kKeyToCheck = @"yourKey"
if (xyz[kKeyToCheck])
NSLog(@"Key: %@, has Value: %@", kKeyToCheck, xyz[kKeyToCheck]);
else
NSLog(@"Key pair do not exits for key: %@", kKeyToCheck);