2012-09-25 4 views
0

Possible en double:
IF clause is not validating NSString function return?comparaison NSString ne fonctionne pas

ce que je suis en train de faire est d'obtenir des éléments d'un flux RSS et de les stocker dans des tableaux en fonction de leur type. Mais le problème est quand je compare les cordes pour séparer les éléments rien ne se passe, j'ai vérifié et les chaînes sont exactement les mêmes mais il dit qu'ils ne sont pas égaux.

- (void)parserDidEndDocument:(NSXMLParser *)parser { 

    if (eventsList != nil) { 
     for (int i = 0; i<[eventsList count]; i++) { 
      NSMutableString* str = [[eventsList objectAtIndex:i] objectForKey:@"category"]; 
      if ([str isEqualToString:@"normal"]) { 
       normalEvents = [[NSMutableArray alloc] init]; 
       [normalEvents addObject:eventsList]; 
      } else if ([str isEqualToString:@"sub"]) { 

       subEvents = [[NSMutableArray alloc] init]; 
       [subEvents addObject:eventsList]; 
      } else if ([str isEqualToString:@"main"]) { 
       NSLog(@"salve mundi"); 

       mainEvents = [[NSMutableArray alloc] init]; 
       [mainEvents addObject:eventsList]; 
      } else { 
       NSLog(@"%@",str); 
      } 
     } 
    } 
} 
+1

Vous continuez à dire "cela n'a pas fonctionné" dans vos commentaires. Qu'est-ce qui n'a pas fonctionné? Quels résultats voyez-vous? – rdelmar

+0

consignez votre 'str' avant l'instruction' if'. – HelmiB

Répondre

4

En utilisant == vous comparer l'adresse des objets. Pour comparer le contenu de deux NSStrings, vous devez utiliser la méthode d'instance [str isEqualToString:@"sub"] à la place.

+0

C'est ce que j'ai essayé en premier mais ça ne marche pas. –

+4

Il doit. Si cela renvoie 'NON', alors vos chaînes sont différentes ou' str' est 'nil'. Essayez de vous connecter "str". 'NSLog (" Chaîne 1:% @ \ nString 2:% @ ", str, @" sub ");'. – DrummerB

+0

ça ne marche toujours pas pour moi. –

2

Je ferais quelques tests pour m'assurer que la chaîne est égale. Par exemple, s'il a des espaces à la fin ou au début, s'il est en majuscule, etc.

[[yourString lowercaseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] 
+0

qui n'a pas fonctionné –

Questions connexes