1

次の(簡略化された)コードがあります。

- (void)doSomethingWithView:(UIView *)theView{

    if ([theView isEqual:myFirstView]) {
        //do something;
    }else{
        //do something else;
         }
}

このメソッドに送信するビュー (「myFirstView」または「mySecondView」) に応じて、異なる結果が得られると予想されます。ただし、条件は常に FALSE になります。

私は何を間違っていますか?

4

2 に答える 2

1

以下のように、両方の uiview のタグ値を取得して比較することもできます。

myfirstview.tag = 1;
mysecondview.tag = 2;

UIView 、つまり myfirstview または mysecondview を渡してメソッドを呼び出し、以下のようにメソッドを定義します。

- (void)doSomethingWithView:(UIView *)theView{

   if (theView.tag == 1 ) {
    //do something for myfirstview
   }
  else{
    //do something else for mysecondview
     }
  }
于 2013-02-25T11:45:12.673 に答える
0

Hemang が答えたように、isKindOfClass または isMemberOfClass を使用して確認する必要があります。isEqual を使用して比較すると、オブジェクトのアドレスが比較されます。

于 2013-02-25T11:20:02.027 に答える