iOS开发-类的加载load函数和initialize函数
2016-02-29 10:21
423 查看
简要概括
load是类加载方法,initialize是类初始化方法。要点
不需要调用super的方法。initialize和load方法系统只调用一次,开发者可以多次调用(可以,但是不建议)。
类加载到系统调用load方法,类首次使用调用initialize方法。
initialize和load的方法不要添加太多逻辑,类比不要在初始化方法做太多操作。
initialize中可以实现无法在编译期初始化的全局变量,load的方法中可以实现swizzling的逻辑。
load的调用并不视为类的第一个方法完成,因为load中调用了当前类中的方法,就先去执行initialize方法。
load方法调用的顺序:父类(Superclass)的方法优先于子类(Subclass)的方法,类中的方法优先于类别(Category)中的方法。
所有类别(Category)中的load方法都会执行,和普通函数的替换效果不同。
最后一个类别(Category)中的initialize方法会覆盖之前类别和类中的initialize方法。
思考题
1,有类A继承类P,类B承类P,那么三个类的load方法、initialize方法的调用先后顺序是如何决定?2,有类A,有类A的类别C1,有类A的类别C2,如果A、C1、C2都实现了load,调用的先后顺序是如何决定?
参考
iOSmain函数之前的调用
load和initialize函数
相关文章推荐
- H5与iOS交互
- ios卡牌游戏项目源码
- iOS URL scheme
- IOS 多线程知识学习
- iOS开发常用之block传值
- iOS Keywords
- iOS推送之远程推送
- iOS开发笔记11:表单键盘遮挡、浮点数价格格式化显示、省市区选择器、View Debugging
- iOS中监控软键盘显示或隐藏的可靠方法
- iOS中监控软键盘显示或隐藏的可靠方法
- iOS中监控软键盘显示或隐藏的可靠方法
- iOS多线程GCD
- iOS 归档
- iOS发邮件功能
- iOS 优化界面流畅度的探讨
- iOS/OS X 内存管理(二):借助工具解决内存问题
- iOS/OS X内存管理(一):基本概念与原理
- iOS滑动tableView来改变导航栏的颜色
- iOS 获取照相机实时预览图片
- iOS自定义转场动画实战讲解