反向if语句

时间:2014-05-13 17:04:54

标签: ios objective-c

我对Objective C

有疑问

我想要一个倒置的if语句。喜欢:if (!example.hidden == YES) {

这是我的代码:

if ((randomBallTouch.x>_randomColorBall.center.x-(_randomColorBall.frame.size.width)/2) &&
    (randomBallTouch.x<_randomColorBall.center.x+(_randomColorBall.frame.size.width)/2) &&
    (randomBallTouch.y>_randomColorBall.center.y-(_randomColorBall.frame.size.height)/2) &&
    (randomBallTouch.y<_randomColorBall.center.y+(_randomColorBall.frame.size.height)/2)) {
    _randomColorBall.center = CGPointMake(randomBallTouch.x, randomBallTouch.y);

    if (_randomColorBall.hidden == NO) {
        _redBall.center = CGPointMake(_redBall.center.x, _redBall.center.y - 200);
    }
}

但是当我这样做时:if(!(randomBallTouch.x>_randomColorBall.center.x))等等。它不起作用。

我不能做其他事情,因为那会对其他两个if语句产生错误。

任何帮助?我正在使用Xcode 5.1。

2 个答案:

答案 0 :(得分:1)

试试这个,只需用你的if替换你的。

if(!((randomBallTouch.x > (_randomColorBall.center.x-(_randomColorBall.frame.size.width)/2)) &&    (randomBallTouch.x < (_randomColorBall.center.x+(_randomColorBall.frame.size.width)/2)) &&     (randomBallTouch.y > (_randomColorBall.center.y-(_randomColorBall.frame.size.height)/2)) &&(randomBallTouch.y < (_randomColorBall.center.y+(_randomColorBall.frame.size.height)/2)))) {

您缺少很多括号,以使您的语句成为有效的布尔值。

答案 1 :(得分:1)

您不能在开头添加!来反转条件。您需要首先将整个表达式包装在一组括号中。

如果你有:

if (a && b) {

然后反转是:

if (!(a && b)) {

你没有添加这些括号。