我有以下(简化)代码:
- (void)doSomethingWithView:(UIView *)theView{
if ([theView isEqual:myFirstView]) {
//do something;
}else{
//do something else;
}
}
我希望,根据我发送给这个方法的视图,“myFirstView”或“mySecondView”,我会得到不同的结果。但是,条件总是变成FALSE。
我做错了什么?
答案 0 :(得分:1)
您还可以通过获取两个uiviews的标记值进行比较,如下所示
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
}
}
答案 1 :(得分:0)
正如Hemang回答的那样......你应该使用isKindOfClass或isMemberOfClass来检查它。 如果使用isEqual进行比较,它将比较对象地址。