- Object-C源码解析
- 1.你真的了解 load 方法么?
- load 作为 Objective-C 中的一个方法,与其它方法有很大的不同。它只是一个在整个文件被加载到运行时,在 main 函数调用之前被 ObjC 运行时调用的钩子方法。其中关键字有这么几个
- ✓ 文件刚加载
- ✓ main 函数之前
- ✓ 钩子方法
- 调用的顺序
- ✓ 1.父类先于子类调用
- ✓ 2.类先于分类调用
- load 的应用
- ✓ load 可以说我们在日常开发中可以接触到的调用时间最靠前的方法,在主函数运行之前,load 方法就会调用。
- ✓ 由于它的调用不是惰性的,且其只会在程序调用期间调用一次,最最重要的是,如果在类与分类中都实现了 load 方法,它们都会被调用,不像其它的在分类中实现的方法会被覆盖,这就使 load 方法成为了方法调剂的绝佳时机。
- ✓ 但是由于 load 方法的运行时间过早,所以这里可能不是一个理想的环境,因为某些类可能需要在在其它类之前加载,但是这是我们无法保证的。不过在这个时间点,所有的 framework 都已经加载到了运行时中,所以调用 framework 中的方法都是安全的。
- ✓ Method Swizzling-runtime<
- load 作为 Objective-C 中的一个方法,与其它方法有很大的不同。它只是一个在整个文件被加载到运行时,在 main 函数调用之前被 ObjC 运行时调用的钩子方法。其中关键字有这么几个
- 1.你真的了解 load 方法么?
iOS-load/initialize
最新推荐文章于 2025-01-27 14:35:28 发布
本文深入探讨了Objective-C中的load和initialize方法。load方法在main函数之前被调用,适用于早期的类配置,而initialize方法是惰性的,仅在类首次使用时调用,确保线程安全。这两个方法在类生命周期中有特定的应用场景,如方法调剂和初始化操作。

订阅专栏 解锁全文
2009

被折叠的 条评论
为什么被折叠?



