Objective-C对Class变量的调用类方法
发布时间:2020-12-16 09:39:07 所属栏目:百科 来源:网络整理
导读:我需要在类型为Class的变量上调用类方法,我知道它包含基类的子类MyBaseClass … - (void)foo:(Class)clazz { // Now i want to call +myClassMethod on clazz} 我不知道这是否真的可行.如果是,是否有更安全的方法来保证clazz实际上是MyBaseClass的子类? 提
我需要在类型为Class的变量上调用类方法,我知道它包含基类的子类MyBaseClass …
- (void)foo:(Class)clazz { // Now i want to call +myClassMethod on clazz } 我不知道这是否真的可行.如果是,是否有更安全的方法来保证clazz实际上是MyBaseClass的子类? 提前致谢 解决方法
您可以使用-respondsToSelector:,就像使用任何Objective-C对象一样.您还可以使用isSubclassOfClass:来测试该类是否是另一个类的子类.
- (void)foo:(Class)clazz { if ([clazz respondsToSelector:@selector(myClassMethod)]) { [clazz myClassMethod]; } else { // clazz does not implement that class method. } if ([clazz isSubclassOfClass:[MyBaseClass class]]) { [clazz myClassMethod]; } else { // clazz is not a subclass of MyBaseClass. } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |