0

我对if声明有疑问

我有一个名为的对象enemy2,我不希望该对象运行,所以我已经使用setHidden = YES并且我打算使用代码

if(enemy2 setHidden: YES)
{

}
if(enemy2 setHidden: NO)
{

}

但它在 setHidden 之后说它的例外 ')'

4

5 回答 5

4

即使您更正了语法,这些语句也可能不会执行。我想你想要

if ([enemy2 hidden])
{
}
else
{
}

使用 getter,而不是 setter。

于 2012-06-20T13:15:11.240 回答
1

它应该是if([enemy2 setHidden: YES]) { } ie 包括方括号

于 2012-06-20T13:07:23.173 回答
1
if([enemy2 setHidden: YES])
{

}
if([enemy2 setHidden: NO])
{

}
于 2012-06-20T13:08:22.673 回答
1

在objective-C中你必须调用这样的方法[anObject method]

所以,([enemy2 setHidden: YES])而不是(enemy2 setHidden: NO)

于 2012-06-20T13:12:14.127 回答
1

正如jrturton建议的那样(另请参阅我的评论),您需要针对 bool 值进行测试。

如果我测试代码(使用 LLVM 编译器)

if([enemy setHidden:YES]){

}

我收到一个编译时错误,因为[self setHidden:YES]返回一个void.

语句需要标量类型的表达式('void' 无效)

正确的方法可能如下,但这取决于您要实现的目标。

if([enemy hidden]) {


}
else {


}

编辑

根据Jonathan Grynspan报告,您应该使用ifenemy的子类,而不是因为类中的 getter定义为:UIViewisHiddenhiddenUIView

@property(nonatomic, getter=isHidden) BOOL hidden
于 2012-06-20T13:24:00.470 回答