NSDictionary: es necesario verificar si el dictionary contiene par de keys-valor o no

Solo necesito preguntar algo como sigue. Supongamos que estoy teniendo un dictionary.

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"]; 

Ahora, necesito verificar lo siguiente

[xyz does contains key "b" value ?? par o no?

La pregunta es ¿cómo?

La otra pregunta es ¿Cómo contar el par key-valor total?

Diga, por ejemplo, NSInteger mCount=[xyz keyCounts];

Simplemente pregúntale por objectForKey:@"b" . Si devuelve nil , no se establece ningún object en esa key.

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

Editar : En cuanto a su segunda pregunta editada, es simplemente NSUInteger mCount = [xyz count]; . Ambas respuestas están bien documentadas y se encuentran fácilmente en la reference de la class NSDictionary ( [1] [2] ).

Con la syntax literal, puede verificar lo siguiente

 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);