Xcode BOOL类型:从输入YES,我想获得值NO

时间:2012-07-14 03:48:51

标签: objective-c xcode boolean

我有一个非常简单的方法,但它不起作用。最终,从输入YES开始,我想得到NO并反转。

-(void)myMethod:(BOOL)ys{
    if (ys==YES) {
        myLabel.hidden=NO;
        myButton.hidden=NO;
    }{
        myLabel.hidden=YES;
        myButton.hidden=YES;
    }
}

你们可以帮助我纠正和缩短代码吗?感谢

4 个答案:

答案 0 :(得分:3)

-(void)myMethod:(BOOL)visible
{ 
    [myLabel setHidden:!visible]; 
    [myButton setHidden:!visible]; 
}

代码应该正常工作。但是,您的代码无法正常工作可能是因为您没有为标签和按钮设置引用插座(如果您使用界面构建器创建它们)。 Set it like this

引用插座应该像这样设置。否则,编译器将不知道您要隐藏的按钮是否是界面上的按钮。

如果您使用代码创建了按钮/标签,请在尝试将其设置为可见之前检查是否已将其释放。

答案 1 :(得分:3)

也许这有点容易:

-(void)myMethod:(BOOL)ys{
    myLabel.hidden = !ys;
    myButton.hidden = !ys;
}

答案 2 :(得分:0)

-(void)myMethod:(BOOL)ys{
    if (ys) {
        myLabel.hidden=NO;
        myButton.hidden=NO;
    } else {
        myLabel.hidden=YES;
        myButton.hidden=YES;
    }
}

答案 3 :(得分:0)

如果我们试图缩短它......“

-(void)myMethod:(BOOL)ys{
    myLabel.hidden = myButton.hidden = !ys;
 }