77 votes

Vérifiez la clé existe dans NSDictionary

comment puis-je vérifier si cela existe?:

[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"]

Je veux savoir si ça existe ou pas. Comment puis-je le faire?

Merci beaucoup :)

EDIT: dataArray les Objets. Et ces objets sont NSDictionaries.

160voto

middaparka Points 33832

Je présume que [dataArray objectAtIndex:indexPathSet.ligne], c'est de revenir un NSDictionary, dans ce cas, vous pouvez simplement vérifier le résultat de valueForKey contre le néant.

Par exemple:

if([[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
    // The key existed...

}
else {
    // No joy...

}

47voto

Miles Alden Points 1112

Donc, je sais que vous avez déjà sélectionné une réponse, mais j'ai trouvé ceci pour être plutôt utile comme une catégorie sur NSDictionary. Vous débutez l'efficacité à ce point avec toutes ces différentes réponses. Meh...6 1...

- (BOOL)containsKey: (NSString *)key {
     BOOL retVal = 0;
     NSArray *allKeys = [self allKeys];
     retVal = [allKeys containsObject:key];
     return retVal;
}

34voto

BoltClock Points 249668

Vérifier si il est nul:

if ([[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
    // SetEntries exists in this dict
} else {
    // No SetEntries in this dict
}

1voto

Tea Points 101

Essayez ceci:

if ([dict objectForKey:@"bla"]) {
   // use obj
} else {
   // Do something else like create the object
}

-1voto

WalterDa Points 11
if ((NSNull *)[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
    // SetEntries exists in this dict
} else {
    // No SetEntries in this dict
}

C'est la bonne réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X