【问题标题】:In Objective-C, when are metaclass object and class object created?在 Objective-C 中,元类对象和类对象是什么时候创建的?
【发布时间】:2026-01-15 05:35:01
【问题描述】:

在 Objective-C 中,类对 - 元类对象和类对象是什么时候创建的?是在应用程序开始执行时还是在您第一次实例化类的第一个对象时?

【问题讨论】:

    标签: objective-c objective-c-runtime


    【解决方案1】:

    在类被添加到类层次结构时。这通常是在应用程序启动时,但如果该类是由动态加载的库添加或以编程方式创建的,则可能会在以后发生。

    类对象和元类必须在+load被调用的时候存在(就是上面那个)。

    【讨论】:

    • 谢谢罗伯。所以是在调用 main 之前?
    • 对于静态链接的类,是的。它也将在调用框架中的 C++ 初始化程序之前。请参阅 +[NSObject load] 的文档,了解 +load 时间前后发生的事情的顺序。那里列出的所有内容都在 main() 之前。