J'ai une instance de NSMutableDictionary et les clés que j'utilise sont de type NSNumber *.Est-ce que objectForKey de NSDictionary recherche une référence ou une valeur?
Dans le scénario que j'ai, j'essaie d'utiliser 'objectForKey' pour récupérer un objet dans mon dictionnaire que je sais est présent. Mais je continue à obtenir zéro pour le résultat sauf si je fais convertir la clé de NSNumber à NSString.
NSNumber *itemId = [NSNumber numberWithInt:5];
id *existingItem = [forRemovalLookup objectForKey:itemId];
if (existingItem == nil)
{
// expected: shouldn't be nil
NSLog(@"!!!!!Not expecting this to be nil");
}
Y at-il une autre opération que je devrais utiliser pour tester la présence d'une clé spécifique dans un dictionnaire?
Je pense que vous voulez dire ** 'id' ** au lieu de **' id * '** pour votre type de données. Rappelez-vous que 'id' est à peu près équivalent à' void * ', mais il est plus dynamique et ne nécessite aucun casting pour le stocker. (Comme il est, vous avez un pointeur vers un ID, qui fonctionne toujours dans ce cas, mais est sémantiquement faux.) –
A voté pour fermer n'est plus pertinent parce que l'auteur semble avoir trouvé l'erreur. –