假设我在 objective-c中有一个通用指针.该指针可以是Class对象,也可以是该类的实例.有什么办法可以分辨两者之间的区别吗? 例: id pointerA = [someClass class];id pointerB = [[someClass alloc] init];
例:
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