comment puis-je vérifier si cela existe ?:
[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"]
Je veux savoir si cette clé existe ou non. Comment puis je faire ça?
Merci beaucoup :)
EDIT: DataArray contient des objets. Et ces objets sont NSDictionaries.
Je suppose que [dataArray objectAtIndex:indexPathSet.row]
renvoie un NSDictionary
, auquel cas vous pouvez simplement vérifier le résultat de valueForKey
par rapport à nil.
Par exemple:
if ([[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
// The key existed...
}
else {
// No joy...
}
Je sais donc que vous avez déjà sélectionné une réponse, mais j’ai trouvé cette réponse plutôt utile en tant que catégorie sur NSDictionary
. Vous commencez à être efficace à ce stade avec toutes ces réponses différentes. Meh ... 6 sur 1 ...
- (BOOL)containsKey: (NSString *)key {
BOOL retVal = 0;
NSArray *allKeys = [self allKeys];
retVal = [allKeys containsObject:key];
return retVal;
}
Vérifiez si c'est nul:
if ([[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] != nil) {
// SetEntries exists in this dict
} else {
// No SetEntries in this dict
}
cela fonctionne également avec les littéraux Objective-C en utilisant la syntaxe suivante:
NSDictionary *dict = @{ @"key1" : @"value1", @"key2" : @"value2" };
if (dict[@"key2"])
NSLog(@"Exists");
else
NSLog(@"Does not exist");
Essaye ça:
if ([dict objectForKey:@"bla"]) {
// use obj
} else {
// Do something else like create the object
}
Le dictionnaire de vérification ne contient aucune valeur. Je préfère [dic allKeys] .count> 0 pour vérifier.
Celui-ci fait la même chose mais avec moins de code:
if (dataArray[indexPathSet.row][@"SetEntries"] != nil) { /* the key exists */ }
else { /* the key doesn't exist */ }
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.
Utilisez l'option (unsigned long)
:
if ( (unsigned long)[[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] ) {
// Key exist;
}else{
// Key not exist;
};