我在與一個if
聲明的問題問題與if語句
我有一個對象稱爲enemy2
,我不希望對象運行,所以我已經使用setHidden = YES
我正要使用的代碼
if(enemy2 setHidden: YES)
{
}
if(enemy2 setHidden: NO)
{
}
但其表示,setHidden後的除外 ')'
我在與一個if
聲明的問題問題與if語句
我有一個對象稱爲enemy2
,我不希望對象運行,所以我已經使用setHidden = YES
我正要使用的代碼
if(enemy2 setHidden: YES)
{
}
if(enemy2 setHidden: NO)
{
}
但其表示,setHidden後的除外 ')'
應該爲if([enemy2 setHidden: YES]) { }
即inclue方括號
在Objective-C,你必須調用方法,這樣[anObject method]
所以,(enemy2 setHidden: NO)
([enemy2 setHidden: YES])
代替
即使你更正語法,無論這些語句可能會執行。我想你想
if ([enemy2 hidden])
{
}
else
{
}
使用getter,而不是setter。
+ 1,使用LLVM編譯器以前的解決方案不起作用... –
可能應該是'isHidden'。'BOOL' getters通常以「is」,「has」等開頭。 –
@JonathanGrynspan好抓!我更正了我的答案... –
由於jrturton建議(也見我的評論)你需要測試一個布爾值。
如果我測試的代碼(與LLVM編譯器)
if([enemy setHidden:YES]){
}
我收到一個編譯時間錯誤,因爲[self setHidden:YES]
返回一個void
。
語句需要標量類型的表達式(「無效」無效)
正確的做法可能是下面的,但它取決於你想要達到什麼樣的事情。
if([enemy hidden]) {
}
else {
}
編輯
基於喬納森Grynspan報告,如果enemy
是因爲在UIView
類吸氣劑被定義爲UIView
一個子類,你應該使用isHidden
而不是hidden
:
@property(nonatomic, getter=isHidden) BOOL hidden
你想達到什麼目的?也許你需要測試視圖是否隱藏,然後爲屬性設置一個新的隱藏值? –
我同意Flex。我不確定你的代碼是如何設置的,但是我沒有預料到這會很好地發揮出來...... – FreeAsInBeer
@NSAutoReleasePool - 你的編輯完全無效化了這個問題。如果您想更正問題中的代碼,請添加答案。 – jrturton