2011-05-20 5 views
0

Les éléments suivants définissent un NSString à StringValue d'un champ de texte. Ensuite, les chaînes sont comparées General_combinationsComparaison des chaînes

- (IBAction)SendAction:(id)sender 
{ 
    NSString *MyLoggerCommand = [CommandBox stringValue]; 
    [CommandBox setStringValue:@""]; 
    [[[MyLogger textStorage] mutableString] appendString: MyLoggerCommand]; 
    [self General_Combinations]; 
} 

- (void)General_Combinations 
{ 
    NSLog(@"General Combinations called.."); 
    if([MyLoggerCommand isEqualToString:@"this"]) 
    { 
     NSLog(@"Matched.."); 
    } 

}

Cependant, peu importe ce que les chaînes sont, ils ne sont jamais égaux. l'extrait

[CommandBox setStringValue:@""]; 

ne devrait pas affecter quoi que ce soit parce que le NSString est d'abord réglée avant que la boîte réelle est effacée.

+0

Il ne fait, voir ma réponse – arclight

+1

Ce code n'a pas de sens. Vous déclarez une variable locale dans 'SendAction:', puis vous faites référence à cette variable dans l'autre méthode 'General_Combinations' où elle ne serait pas disponible. Ce code devrait tomber en panne à l'exécution ... Y a-t-il un morceau de code manquant ici qui ferait ce travail? –

+0

Oui, j'ai déclaré le NSString au plus haut niveau. J'étais assez stupide pour oublier de passer la variable à travers la fonction. – evdude100

Répondre

2

Le problème est que vous comparez MyLoggerCommand lorsque la seconde méthode ne sait pas ce que c'est. Essayez ce code:

-(IBAction)SendAction:(id)sender { 

    NSString *myLoggerCommand = [CommandBox stringValue]; 
    [[[MyLogger textStorage] mutableString] appendString: myLoggerCommand]; 
    [self General_Combinations:myLoggerCommand]; 
    [CommandBox setStringValue:@""]; 
} 

-(void)General_Combinations:(NSString *)aString { 

    NSLog(@"General Combinations called.."); 
    if([aString isEqualToString:@"this"]) 
    { 
     NSLog(@"Matched.."); 
    } 
} 
+0

Les chaînes ne sont toujours pas égales. – evdude100

+0

Ok, je viens de réaliser quel est le problème ici, je vais éditer la réponse – arclight

+1

vous pouvez mettre en forme le code source avec le bouton {}, semble un peu mieux qu'une citation;) –