我对if
声明有疑问
我有一个名为的对象enemy2
,我不希望该对象运行,所以我已经使用setHidden = YES
并且我打算使用代码
if(enemy2 setHidden: YES)
{
}
if(enemy2 setHidden: NO)
{
}
但它在 setHidden 之后说它的例外 ')'
我对if
声明有疑问
我有一个名为的对象enemy2
,我不希望该对象运行,所以我已经使用setHidden = YES
并且我打算使用代码
if(enemy2 setHidden: YES)
{
}
if(enemy2 setHidden: NO)
{
}
但它在 setHidden 之后说它的例外 ')'
即使您更正了语法,这些语句也可能不会执行。我想你想要
if ([enemy2 hidden])
{
}
else
{
}
使用 getter,而不是 setter。
它应该是if([enemy2 setHidden: YES]) { }
ie 包括方括号
if([enemy2 setHidden: YES])
{
}
if([enemy2 setHidden: NO])
{
}
在objective-C中你必须调用这样的方法[anObject method]
所以,([enemy2 setHidden: YES])
而不是(enemy2 setHidden: NO)
正如jrturton建议的那样(另请参阅我的评论),您需要针对 bool 值进行测试。
如果我测试代码(使用 LLVM 编译器)
if([enemy setHidden:YES]){
}
我收到一个编译时错误,因为[self setHidden:YES]
返回一个void
.
语句需要标量类型的表达式('void' 无效)
正确的方法可能如下,但这取决于您要实现的目标。
if([enemy hidden]) {
}
else {
}
编辑
根据Jonathan Grynspan报告,您应该使用ifenemy
的子类,而不是因为类中的 getter定义为:UIView
isHidden
hidden
UIView
@property(nonatomic, getter=isHidden) BOOL hidden