2013-07-05 73 views
0

我正在嘗試找出正確的方法來處理某些方法。調用BOOL方法並處理結果

工作流程 當一個遊戲創建時,我想先搜索一下這個用戶是否已經存在一個遊戲。如果有遊戲,我不會創建一個遊戲並向用戶顯示一條消息。

目前我有兩個方法:

+(void)createNewGameAgainst:(PFUser *)user2 withCompletion:(void (^)(BOOL success))completionHandler 

+(BOOL)checkIfGameAlreadyExistsAgainst:(PFUser *)opponentUser 

的createNewGame ...方法首先被調用。然後在這裏我打電話給[self checkIfGameAlreadyExistsAgainst:user2] ;.

如何檢查第一種方法的結果?那麼如何確定調用checkIfGameAlreadyExistsAgainst方法的BOOL值?

這是正確的方法來解決這個問題,或者有更好的/更清潔的方式可能嗎?

+0

你怎麼嘗試調用'checkIfGameAlreadyExistsAgainst'和使用e返回值? – Wain

+0

從其他問題中,我假設你不可能在尋找'if([self checkIfGameAlreadyExistsAgainst:user2] == YES){}' – Turch

+0

@Turch - 是的那麼簡單,請提交作爲答案。你會說這是我正努力實現的方法,還是其他不同的方法? – StuartM

回答

1

一個函數的返回值可以用於像變量:

BOOL gameExists = [self checkIfGameAlreadyExistsAgainst:user2]; // assign result to a new variable 

if(gameExists == YES) // compare result to YES 
{ 
} 

您可以跳過創建一個新的變量,只是比較結果

if ([self checkIfGameAlreadyExistsAgainst:user2] == YES) // compare result directly 
{ 
} 

而當類型爲BOOL,你可以省略比較,只是這樣做:

if ([self checkIfGameAlreadyExistsAgainst:user2]) 
{ 
}