我遇到了if
声明的问题
我有一个名为enemy2
的对象,我不希望该对象运行,因此我使用了setHidden = YES
而我将使用代码
if(enemy2 setHidden: YES)
{
}
if(enemy2 setHidden: NO)
{
}
但它在setHidden
之后表示除了')'答案 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 报告,如果enemy
是UIView
的子类,则应使用isHidden
代替hidden
,因为getter in UIView
类定义为:
@property(nonatomic, getter=isHidden) BOOL hidden