明确 Objective-C 中 +load 方法的实验次序

[复制链接]
发表于 2026-2-12 23:01:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在 Objective-C 中,+load 方法是在类或分类(category)被加载到内存时调用的。它的实验次序非常严酷,而且在应用启动过程中大概会导致一些令人狐疑的举动。明确 +load 方法的实验次序对调试和控制应用的初始化过程非常紧张。
+load 方法的实验次序

      
  • 类的 +load 方法:起首,全部类的 +load 方法会按照以下次序实验:
         
    • 按照类的编译次序实验。   
    • 主类的 +load 方法先于它的任何子类的 +load 方法实验。   
       
  • 分类的 +load 方法:其次,全部门类的 +load 方法会按照以下次序实验:
         
    • 在界说该分类的类的 +load 方法之后实验。   
    • 多个分类的 +load 方法的实验次序不确定(即,编译器大概会以任何次序实验这些分类的 +load 方法)。   
      
+load 方法的具体实验次序示例

假设有如下的类和分类:
  1. // SuperClass.h
  2. @interface SuperClass : NSObject
  3. @end
  4. // SuperClass.m
  5. @implementation SuperClass
  6. + (void)load {
  7.     NSLog(@"SuperClass +load");
  8. }
  9. @end
  10. // SubClass.h
  11. @inte
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表