init()方法调用及扩展
来源:互联网 发布:阿里云青岛机房位置 编辑:程序博客网 时间:2024/06/06 20:58
我们在开发的过程中避免不了和系统的一些函数 方法 打交道
但是我们应该考虑一个问题 这些方法是什么时候调用的 调用顺序是什么
我们不能仅仅的限于使用这些方法 应该深入地了解这些方法的原理是什么
举个简单的例子
- (instancetype)init{ self = [super init]; if (self) { } return self;}- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { [self leftVC]; [self rightVC]; [self postNotButton]; [self pushLeft]; [self pushRight]; } return self;}看看上面两个函数 什么时候调用?
是系统自动调用?
还是我们手动调用?
什么时候调用?
我想会有些人认为 这两个方法的调用是系统帮我们自动调用的
其实不然
我们只有创建控制器的方式是init这样 的方式 系统才会走这两个方法
如果使用init创建控制器
先走的方法是
self = [super init];
然后在[super init] 内部调用
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { } return self;}我们可以在这两个方法中做一些初始化...操作
研究方法 要多提问 多打断点 进行单步执行
1 0
- init()方法调用及扩展
- go/golang main() init()方法的调用
- Servlet的init方法被两次调用
- alloc]init 时候会调用initWithFrame方法
- Tomcat调用两次Filter的init()方法
- IOS viewdidload 方法在 init 方法之前调用
- 重写了Servlet的init方法后一定要记得调用父类的init方法
- 重写了Servlet的init方法后一定要记得调用父类的init方法
- 扩展方法及常见错误
- 扩展方法介绍及使用
- UIViewController init方法里面调用self.view的问题
- init方法在项目运行时啥时候调用
- 关于init初始化方法里调用self.view
- viewDidLoad在init方法之前调用的坑
- OC中new方法与alloc+init及构造方法
- Init方法
- init方法
- init方法
- 第十三周实践项目~Prim算法的验证
- 第14周项目2-二叉树排序树中查找的路径
- 有向图(7)--再谈可达性&&有向图总结
- 设置沉浸式状态栏
- 第十一周项目二:用二叉树求解代数表达式
- init()方法调用及扩展
- java默认构造器constructor
- 第十五周实践项目2—用哈希法组织关键字
- js中闭包原理谈和原型及例子
- MongoDB操作数据库的几个命令(自己用)
- 第14周项目1(2) 验证分块查找算法
- 使用TabLayout 实现顶部选项卡功能
- cocoa pods安装出错
- 第十五周项目--直接排序法