2010-06-29 5 views
0

J'espère que cette question est un peu explicite.'If' fonctionne avec NSLog mais pas sans? Objective-C

Cela fonctionne, retourne OUI et NON: note la NSLog() 's

- (BOOL)dateTestCourse:(NSDictionary *)listing { 
    BOOL result = ([self exammpleTest] == 0) ? YES : NO; 
    if (result) { 
     NSLog(@"Passes Test"); 
     return YES; 
    } 
    NSLog(@"Failed Test"); 
    return NO; 

} 

Mais au-dessous reviennent toujours OUI? La seule différence est pas NSLog();

- (BOOL)dateTestCourse:(NSDictionary *)listing { 
    BOOL result = ([self exammpleTest] == 0) ? YES : NO; 
    if (result) { 
     // NSLog(@"Passes Test"); 
     return YES; 

    } 
    // NSLog(@"Failed Test"); 
    return NO; 

} 

Est-ce quelque chose à voir avec C? Je n'ai aucune idée? Je pourrais m'attendre à toujours revenir (si je ne devrais pas casser dans le conditionnel), mais sûrement cela reviendrait OUI.

Je sais que je devrais retourner le résultat dans les exemples ci-dessus, mais je suis curieux de savoir pourquoi.

+0

Etes-vous sûr la parenthèse sont exactement comme dans votre code de production? – Eiko

+0

Pourriez-vous nous montrer la méthode exammpleTest? – jessecurry

+0

Je suis hésitant à car c'est grand-ish mais retourne un BOOL correctement. La syntaxe de la méthode exemple peut-elle rompre la syntaxe de la méthode dateTestCourse? (ou je fais quelque chose de stupide) – Ross

Répondre

1

Ces deux blocs de code doivent fonctionner de la même manière. Est-ce que vous faites peut-être une recherche/remplacement sur NSLog? Cela pourrait causer des problèmes ailleurs, disons avec la méthode exammpleTest (sic).

En outre, l'opérateur ternaire sur la deuxième ligne est redondant, envisager de réduire cette ligne à:

BOOL result = ([self exammpleTest] == 0); 
Questions connexes