Blo*_*nce 2 objective-c uibutton
我有一个if声明,需要知道对象类型是否是一个按钮.
到目前为止,我有:
NSLog(@" %@ ",[myObject class]);
Run Code Online (Sandbox Code Playgroud)
返回UIButton,所以我知道这是有效的.
接下来是if声明:
if([myObject isMemberOfClass:_______])
Run Code Online (Sandbox Code Playgroud)
这是我遇到问题的地方,因为我不允许UIButton作为参数提供isMemberOfClass:.我尝试过使用UIButtonTypeCustom,但它不符合if声明.
有什么建议 ?
谢谢.
其他的答案和评论已经在这方面得到了解决,但它可以更清晰.
使用时isMemberOfClass:,参数必须是Class对象.您可以使用class选择器为任何类获取其中一个.因此:
if ([myObject isMemberOfClass:[UIButton class]])
NSLog(@"It's a UIButton");
else
NSLog(@"It's not a UIButton");
Run Code Online (Sandbox Code Playgroud)
现在,isMemberOfClass:只有YES在对象特定是实例的情况下才会返回UIButton.但是,对于对象是否从特定类继承感兴趣更为常见- 尤其是在这里,因为UIKit可能使用UIButton幕后的私有子类.为此,您需要isKindOfClass::
if ([myObject isKindOfClass:[UIButton class]])
NSLog(@"It's a UIButton or some subclass");
else
NSLog(@"It's not a UIButton");
Run Code Online (Sandbox Code Playgroud)