【发布时间】:2019-09-14 10:11:15
【问题描述】:
什么是 Objective-C 运行时中的类处理程序回调?根据文档,
objc_getClass 与 objc_lookUpClass 的不同之处在于,如果该类未注册,则 objc_getClass 调用类处理程序回调,然后再次检查该类是否已注册。 objc_lookUpClass 不调用类处理程序回调。
【问题讨论】:
标签: objective-c objective-c-runtime
什么是 Objective-C 运行时中的类处理程序回调?根据文档,
objc_getClass 与 objc_lookUpClass 的不同之处在于,如果该类未注册,则 objc_getClass 调用类处理程序回调,然后再次检查该类是否已注册。 objc_lookUpClass 不调用类处理程序回调。
【问题讨论】:
标签: objective-c objective-c-runtime
它似乎是运行时的一个过时功能。在 /usr/include/objc/runtime.h 中,您可以在标记为 /* Obsolete functions */ 的部分中找到以下声明:
OBJC_EXPORT void objc_setClassHandler(int (*)(const char *)) OBJC2_UNAVAILABLE;
因此,显然,在 Objective-C 2.0 之前,可以注册一个函数指针来充当类处理程序。我猜参数是类名。它将有机会加载或动态创建命名类。
【讨论】: