iOS 面试题~类方法load和initialize的区别
来源:互联网 发布:淘宝快递模板 编辑:程序博客网 时间:2024/06/05 07:27
//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄
一、+load:
1/方法当类或分类添加到object-c runtime时被调用
2/子类的+load方法会在它所有父类的+load方法之后执行,
3/而分类的+load方法会在它的主类的+load方法之后执行,
4.+load方法,它不遵循那套继承规则。
5.+load方法调用顺序是:SuperClass -->SubClass --> CategaryClass。
6.load,是加载类的时候,这里是Constants类,就会调用。也就是说,ios应用启动的时候,就会加载所有的类,就会调用这个方法。
注意:这样有个缺点,当加载类需要很昂贵的资源,或者比较耗时的时候,可能造成不良的用户体验,或者系统的抖动(dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{});用GCD可能会好点)。
二、initialize
1/是在类或者它的子类接受第一条消息前被调用;
2/是以懒加载的方式被调用的;
3/一定会在“线程安全的环境”中执行;
4/调用顺序是SuperClass -->SubClass
。
5/initialize 会在运行时仅被触发一次,如果没有向类发送消息的话,这个方法将不会被调用。这个方法的调用是线程安全的。父类会比子类先收到此消息。
谢谢!!!
阅读全文
0 0
- iOS 面试题~类方法load和initialize的区别
- iOS load和initialize的区别
- iOS类重要的两个方法 load 和 initialize
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- 1.Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- Objective C类方法load和initialize的区别
- 读取csv文件到datatable
- NOIP2016T4暨洛谷P2119解题报告+读入输出优化(原创+转载)
- 1007 8皇后问题
- OceanBase几个常见问题及排查思路
- MVC,MVP 和 MVVM 的图示
- iOS 面试题~类方法load和initialize的区别
- Unity_弹壳抛出
- C与C++的区别
- RibbonForm作为父窗体,同一子窗体只打开一次
- snmpdf获取主机磁盘信息
- 设计模式之过滤器模式
- 操作列表(python)
- 记一次centos7系统内核调试的傻X行为
- debian9更新163源、配置中文输入及安装网易云音乐