2013-05-14 3 views
-2

J'utilise une déclaration IF pour voir si le valueForKey est @ « T » dans mon NSDictionary, mais je ne pense pas que je suis le correctement NSDictionary accède parce que même quand je sais que la valueForKey est T est N'entre jamais l'instruction IF.essai NSDictionary valueForKey utilisant ISEqualToString

C'est ce que mon code ressemble à:

if ([[getObj valueForKey:@"hasSetID"] isEqualToString:@"T"]) { 
     [arrayOfButtonImages addObject:firstButtonImage]; 
    } 

Donc, si ce statment est jamais entré, même si elle est T.

Si quelqu'un sait comment tester la valueForKey d'un NSDictionary il serait être grandement apprécié si vous pouviez m'aider avec votre perspicacité.

+0

'NSArray * clés = [getObj AllKeys],' essayez et l'imprimer, vous pourrez voir toutes les clés de ** dictionnaire * *. Une autre chose peut être que n'importe quel espace blanc est ajouté avec des clés, dans ce cas, il ne serait pas égal à '@" T "'. – TheTiger

+0

voulez-vous rechercher dans les clés du dictionnaire ou obtenir ses valeurs? –

+1

[Cela fonctionne pour moi, tout comme il est censé fonctionner.] (Http://ideone.com/DIU6LM) –

Répondre

1

Ceci est supposé fonctionner, et it does indeed. L'erreur est ailleurs. Essayez de vous connecter le contenu de votre dictionnaire:

NSLog(@"%@", dict); 

pour voir si la clé est vraiment @"hasSetID", et la valeur est en effet @"T". N'avez-vous pas un caractère d'espace supplémentaire dans l'un d'eux? etc.

+0

i na pas downvote ... quand je connecte le NSDictionary je reçois ce { HasASPID = F; firstInfoSetID = F; secondInfoSetID = F; thirdInfoSetID = T; // etc } – HurkNburkS

+0

@HurkNburkS Aucune des clés n'est 'hasSetID' dans cela. –

+0

Oui les deux sont faux ..... :) – TheTiger

0

Peut-être que vous pouvez essayer celui-ci:

if([[yourDictionary allValues]containsObject:@"T"]){ 
    // Your code here if T is existing 
} 
else{ 
    // your code here if its "T" is not existing 
} 
Questions connexes