我有一个 if
语句需要知道对象类型是否是一个按钮。
到目前为止我有:
NSLog(@" %@ ",[myObject class]);
它返回 UIButton
,所以我知道这是有效的。
接下来是if
语句:
if([myObject isMemberOfClass:_______])
这是我遇到问题的地方,因为不允许我提供 UIButton
作为 isMemberOfClass:
的参数。我尝试使用 UIButtonTypeCustom
,但它不满足 if
语句。
有什么建议吗?
谢谢。
最佳答案
其他答案和评论已经涉及到这一点,但它可能会变得更加清晰。
当您使用 isMemberOfClass:
时,参数必须是一个 Class
对象。您可以使用 class
选择器为任何类获取其中之一。因此:
if ([myObject isMemberOfClass:[UIButton class]])
NSLog(@"It's a UIButton");
else
NSLog(@"It's not a UIButton");
现在,isMemberOfClass:
仅当对象是 UIButton
的具体实例时才返回 YES
。然而,更常见的是对对象是否继承特定类感兴趣——尤其是在这里,因为 UIKit 可能在幕后使用 UIButton
的私有(private)子类。为此,您需要 isKindOfClass:
代替:
if ([myObject isKindOfClass:[UIButton class]])
NSLog(@"It's a UIButton or some subclass");
else
NSLog(@"It's not a UIButton");
关于objective-c - 如何检查对象是否为 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11507908/