加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读