2012-09-24 78 views
1

我正在練習一些布爾函數,我似乎被卡住的任何幫助將不勝感激。我一定會犯一些小錯誤。xcode的布爾函數

-(BOOL) checkForWin 
{ 
    if ([[dictionary valueForKey:[cowsShuffled objectAtIndex:cowsCard]] intValue] == 2{ 
     return YES; 
    } 
} 

-(void) moo 
{ 
    if (checkForWin == YES) { 
     NSLog (@"foo"); 
    } 
} 
+0

格式化您的代碼正確使其他人更容易閱讀並幫助您。它也減少了錯誤的發生。 –

回答

6

您需要調用方法(不是函數),而且您不需要將其與YES進行比較。該if聲明確實隱含:

if ([self checkForWin]) … 

還要注意的是checkForWin有一個問題:如果if語句失敗,它不會返回任何東西。它應該是簡單的:

- (BOOL)checkForWin{ 
    return [[dictionary valueForKey:[cowsShuffled objectAtIndex:cowsCard]] intValue] == 2; 
} 

腳註:嚴格地說,if (x) …是不完全一樣的if (x == YES) …。它實際上更接近於if (x != NO) …,但對於大多數意圖和目的來說,這是相同的事情(並且它們不是病態的)。

1

您的方法調用錯誤。你可以調用這樣的方法:[object method]

在你的情況下[self checkForWin]