我们使用[ClassName class]来检查弱链接类或者新版本iOS中的类。[ClassName class]在背后是如何运作的?它是否通过NSClassFromString进行操作?
-weak_framework <framework_name>
)不用担心符号和优化。苹果建议在支持之前的运行时SDK时启用此选项。您无法对SDK中不存在的框架进行弱链接。[ClassName class]
,它既不是NSString
也不是桥接计数器部分CFStringRef
。它是Objective-C类元数据。typedef struct objc_object {
Class isa;
} *id;
身份验证通过NS_CLASS_AVAILABLE
宏进行测试,该宏扫描所有从运行时元数据派生的对象。
[ClassName class]
返回的是一个 Class(又称为 typedef struct objc_class *Class;
),而不是一个 objc_object(又称为 *id)。 - Brad Allred@interface NSObject <NSObject> { Class isa; }
- Justin Fischer
[ClassName class]
不会起作用。你已经有了一个链接到类符号的引用,所以你不能使用它。你需要使用NSClassFromString()
。 - nielsbot[ClassName class]
可能不使用NSClassFromString()
。 - nielsbot+[NSObject class]
只是return self;
。 - jscs