我在与一个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