[ios] 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에 키 “b”값이 포함되어 있습니까? ?? 쌍인가?

질문은 어떻게?

다른 질문은 총 키-값 쌍을 계산하는 방법입니다.

예를 들어 말해 NSInteger mCount=[xyz keyCounts];



답변

그냥 objectForKey:@"b". 를 반환하면 nil해당 키에 개체가 설정되지 않은 것입니다.

if ([xyz objectForKey:@"b"]) {
    NSLog(@"There's an object set for key @\"b\"!");
} else {
    NSLog(@"No object set for key @\"b\"");
}

편집 : 편집 한 두 번째 질문은 간단 NSUInteger mCount = [xyz count];합니다. 이 두 답변은 모두 잘 문서화되어 있으며 NSDictionary 클래스 참조 ( [1] [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); 


답변