作品分享
问答交流
发现
任务
客服工单
map_images与load_images map_images : dyld 将 image 加载进内存时 , 会触发该函数. load_images : dyld 初始化 image 会触发该方法. ( 我们所熟知的 load 方法也是在此处调用 ) . dyld在初始化其他动态库之前,会开始初始化体系库libsystem,运行Runtime。体系库libsystem初始化完成后,就会初始化其他动态库,然后由Runtime调用map_images来读取类、方法、协议以及分类并存储到对应的表中(注意:分类并不是直接存,而是通过attachLists方法把分类的数据添加到类内里),然后Runtime会继续调用load_images调用全部类的load方法以及分类的load方法,这些都做完之后,通过dyld提供的回调_dyld_objc_notify_register,告诉dyld加载完毕,然后dyld就开始找主步伐的入口main函数,末了进入步伐的main函数。
load方法的调用序次 +load方法是在load_images中调用的。 load方法调用序次为:先处理处罚类,后处理处罚分类;处理处罚类的序次是先父类,后子类 在调用类的load方法时,做了递归处理处罚,会先调用父类的load,然后再调用子类的load,全部类的load方法调用完成后,才会开始处理处罚全部类的分类,分类的处理处罚序次取决于Mach-O头文件,和类的序次没有直接关系。先后序次即:父类->子类->全部类的分类。
举报
本版积分规则 回帖后跳转到最后一页
Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )
GMT+8, 2025-8-24 11:32, Processed in 0.180071 second(s), 35 queries.© 2003-2025 cbk Team.