在objective-c中,我如何区分Class和类的实例?
发布时间:2020-12-16 09:23:23 所属栏目:百科 来源:网络整理
导读:假设我在 objective-c中有一个通用指针.该指针可以是Class对象,也可以是该类的实例.有什么办法可以分辨两者之间的区别吗? 例: id pointerA = [someClass class];id pointerB = [[someClass alloc] init];bool pointerAIsAClass = is_this_a_Class(pointerA
假设我在
objective-c中有一个通用指针.该指针可以是Class对象,也可以是该类的实例.有什么办法可以分辨两者之间的区别吗?
例: id pointerA = [someClass class]; id pointerB = [[someClass alloc] init]; bool pointerAIsAClass = is_this_a_Class(pointerA); // should be true bool pointerBIsAClass = is_this_a_Class(pointerB); // should be false 我如何编写is_this_a_Class函数以便返回正确的bool值? bool is_this_a_Class(id somePointer) { // your code goes here } 解决方法
最正确的方法是检查对象的类,看看它是否是元类:
BOOL object_isClass(id object) { return class_isMetaClass(object_getClass(object)); } 这里有更多的答案:Check if object is Class type (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |