0

画面に設定されたUITapGestureRecognizerでxとyを取得しました。オブジェクトが接触している場所を取得した後、条件を設定しましたが、機能しません。たぶん私はObjectiveCに間違った条件を入れましたか?Xcodeはエラーを出しませんが、関数は機能しません。

  -(void)tappedMapOniPad:(int)x andy:(int)y{
       NSLog(@"the x is: %d", x);
         //the x is: 302
       NSLog(@"the y is: %d", y);
         //the y is: 37

       if((121<x<=181) && (8<y<=51)){ //the error is here
            self.stand = 431;
        }else if ((181<x<=257) && (8<y<=51)){
            self.stand=430;
        }else if ((257<x<=330) && (8<y<=51)){
            self.stand = 429;
        }

      NSLog(@"The stand is %d", self.stand);
        //The stand is 431

   }

どのようにできるのか?

4

4 に答える 4

5
121<x<=181

121<10<=181x:=10 -> false<=181-> 0<=181->trueと仮定しましょう

あなたはそれを段階的にしなければなりません。

((121 < x) &&  (x <=181))

((121 < 10) && (10 <=181))x:=10 -> false && true->と仮定しましょうfalse

于 2013-01-10T09:38:45.753 に答える
4

交換

if((121<x<=181) && (8<y<=51))

if((121 < x && x <= 181) && (8 < y && y <= 51))
于 2013-01-10T09:37:55.057 に答える
1

(121<x<=181)Obj-cでは種類の式が無効です。

使用する、(x>121 && x<=181)

完全なコードは次のようになります:

    if((x>121 && x<=181) && (y>8 && y<=51)){ //the error is here
        self.stand = 431;
    }
    else if ((x>181 && x<=257) && (y>8 && y<=51)){
        self.stand=430;
    }
    else if ((x> 255 && x<=330) && (y>8 && y<=51)){
        self.stand = 429;
    }

または、次のように最適化できます。

if(y>8 && y<=51){
    if (x> 257 && x<=330) {
        self.stand = 429;
    }
    else if(x>181){
        self.stand=430;
    }
    else if(x>121){
        self.stand = 431;
    }
}
于 2013-01-10T09:37:45.697 に答える
0

ない&&

試す

if((121<x&&x <=181)&&(8<y&&y <=51))

それが役に立てば幸い

于 2013-01-10T09:38:46.987 に答える