为什么在项目的主函数之前调用了类'+ load()方法?主要功能不是应用程序的入口吗?谁调用了+加载方法?为什么一个类的+ load()在objc的main()之前执行?
0
A
回答
-1
来自:NSObject +load and +initialize - What do they do?
运行时发送负荷消息发送到每个类对象,很快之后类对象被加载到进程的地址空间。对于作为程序可执行文件一部分的类,运行时会在进程的生命周期中尽早发送加载消息。
1
首先:它是+load
,不load()
(+load()
不语法存在),因为它是一种方法,不是一个函数。
main()
是应用程序的入口点。 load
是从运行时环境发送的,明显是在应用程序“启动”之前通过调用main()
启动的。
实际上,在加载包后,包中的所有类对象都会收到load
消息。显然这比每个班级都有一个标志要容易得多,不管它是否已经得到了这个信息。
但是,这不应该是你的代码的问题,因为实现+load
不应该依赖于类之外的任何东西。
相关问题
- 1. IOS在main()之前执行什么?
- 2. 在main()执行之前实例化一个类的对象
- 3. 在main()之前执行代码()
- 4. 执行main之前的分段错误
- 5. 为什么不执行setInterval执行之前定义的函数?
- 6. 为什么第27行在第24行之前执行?
- 7. Main()为什么在函数定义之前调用函数?
- 8. 为什么线程在执行main方法后运行?
- 9. 为什么在这种类型之前有一个加号?
- 10. 为什么触发器的一部分在其余部分之前被执行?
- 11. 为什么'的main(){的putchar(&main);}`输出`×`
- 12. 为什么hibernate在保存之前执行SELECT?
- 13. 为什么if语句在foreach循环之前执行?
- 14. 为什么onAuthorization在验证之前执行?
- 15. 为什么%autosetup在提取源之前执行修补?
- 16. 为什么在执行saveAndFlush之前,hibernate再次加载实体?
- 17. 为什么.done()方法在$ getJSON调用完成执行之前完成执行?
- 18. 为什么validates_uniqueness_of在before_create之前运行?
- 19. 为什么viewDidLoad在didSelectItemAtIndexPath之前运行?
- 20. 为什么要在重写equals()之前投入一个类进行比较?
- 21. 为什么程序不能在main中执行print语句?
- 22. 为什么函数无法在Document load上执行?
- 23. Swift类添加“@objc”为什么
- 24. 为什么在打印任何内容之前,执行printf()函数,调用sleep(),为什么执行?
- 25. 为什么在调用类方法之前通过+(Class)类发送一个类?
- 26. C - 运行之前/之后main()结束
- 27. Main类块 '{}' 从不执行
- 28. 为什么派生类的字段初始值设定项在基类的初始化符之前执行
- 29. 什么时候应该在执行之前检查一个视图!= null?
- 30. 为什么text()函数执行之前淡出()函数