if语句的问题

时间:2012-06-20 13:06:02

标签: objective-c

我遇到了if声明的问题

我有一个名为enemy2的对象,我不希望该对象运行,因此我使用了setHidden = YES而我将使用代码

if(enemy2 setHidden: YES)
{

}
if(enemy2 setHidden: NO)
{

}

但它在setHidden

之后表示除了')'

5 个答案:

答案 0 :(得分:4)

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

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

使用getter,而不是setter。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

if([enemy2 setHidden: YES])
{

}
if([enemy2 setHidden: NO])
{

}

答案 3 :(得分:1)

在objective-C中,您必须调用此方法[anObject method]

所以,([enemy2 setHidden: YES])代替(enemy2 setHidden: NO)

答案 4 :(得分:1)

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

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

if([enemy setHidden:YES]){

}

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

  

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

正确的方法可能如下,但这取决于你想要达到的目标。

if([enemy hidden]) {


}
else {


}

修改

基于 Jonathan Grynspan 报告,如果enemyUIView的子类,则应使用isHidden代替hidden,因为getter in UIView类定义为:

@property(nonatomic, getter=isHidden) BOOL hidden