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 回答