如何知道Objective C指针是否为“ Class”类型?

aresug25

我想知道程序中的指针是否指向Class类型。

就像是:

if ([anObject isKindOfClass:[Class class]]])

这是一个错误,因为[Class class]不存在。

我可以进入的壁橱是这样的:

    NSLog(@"Will run");
    const char *nameOfClass = class_getName(@"DoesNotExist");
    if (nameOfClass == NULL || (strlen(nameOfClass) == 0)
    {
        NSLog(@"Not a class");
    } else { 
        NSLog(@"String: %s", nameOfClass);
    }
    NSLog(@"Did run");

一个空的const char *nameOfClass告诉我它实际上不是Class对象。还有其他想法吗?

乐队

有一个名为的Obj-C运行时函数object_isClass

#import <objc/runtime.h>
if (object_isClass(anObject))

另一个有效的方法是使用class_isMetaClass(object_getClass(anObject)),因为类的类是元类

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何知道C ++中指针指向的对象类型?

如何知道传入变量是否为特定的枚举类型?

如何知道属性是否为List <MyClass>的类型?

在objective-c 中,来自不兼容指针类型的类型赋值是否应该总是失败?

如何检查从C传递的函数指针是否为非NULL

如何创建类型为List <class>的class属性的对象

Objective-C的指针魔术。类型保护

malloc如何知道返回的指针所指向的类型

C ++如何检查变量是否为std :: string类型?

如何检查数据类型是否为数组?(C ++)

Objective-C运行时:声明类型为Class(objc_class)的变量符合协议是什么意思?

如何在不知道键/值类型的情况下测试接口{}是否为映射?

如何知道字符串的值是否为 java 数据类型

如何理解Objective-C块的类型?

枚举类型为Class时如何使用Java反射?

jQuery:如何知道输入类型是否不是单选

C ++如何知道如何转换为特定类型?

如何判断我的interface {}是否为指针?

如何判断变量是否为指针?

Objective-C 指针类型“NSString *”到 C 指针类型“CFStringRef”错误的奇怪转换

如何知道文件的类型?

如何从.class文件知道是否包含调试元数据?

C#/。Net泛型如何知道其参数类型?

C#如何知道文字是什么类型?

GDB是否支持将内容显示为指针类型的值?

如何在C ++中使用条件检查typename T是否为浮点类型的整数类型

如何知道何时从 Objective-C 中的特定文本字段复制文本?

如何在C ++中检查指针的类型

我们如何将Objective-C常量导入为Swift类型?