load加载分析

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

UIViewController+A 和 UIViewController+B 是两个实现了各自 load 方法的类别。load 方法的调用顺序取决于 Build Phases 中 Compile Sources 部分类的加载顺序。如果两个类别具有相同的方法名,则会调用最后加载的文件的方法。如果方法名不同,它们将不会相互影响。

🎯

关键要点

  • UIViewController+A 和 UIViewController+B 是两个实现了各自 load 方法的类别。

  • load 方法的调用顺序取决于 Build Phases 中 Compile Sources 部分类的加载顺序。

  • 如果两个类别具有相同的方法名,调用最后加载的文件的方法。

  • 如果方法名不同,它们将不会相互影响。

  • 示例代码中,先执行 B 的 load 方法,再执行 A 的 load 方法。

  • 调用相同的方法时,只会执行最后加载的文件的方法。

  • 不同的方法不会相互影响,文件不会被覆盖。

延伸问答

UIViewController+A 和 UIViewController+B 的 load 方法有什么区别?

它们各自实现了自己的 load 方法,调用顺序取决于 Build Phases 中 Compile Sources 的加载顺序。

如果两个类别有相同的方法名,调用时会发生什么?

会调用最后加载的文件的方法,在例子中只会执行 A 的 test 方法。

如何确定 load 方法的执行顺序?

执行顺序取决于 Build Phases 中 Compile Sources 的类加载顺序。

不同的方法名之间会相互影响吗?

不会,只有相同的方法才会受到影响,不同的方法不会相互影响。

在示例代码中,load 方法的输出顺序是什么?

输出顺序是先执行 B 的 load 方法,然后执行 A 的 load 方法。

如果调用 testA 和 testB 方法,会有什么结果?

会分别输出 testA 和 testB,证明文件没有被覆盖。

🏷️

标签

➡️

继续阅读