designated initializer
来源:互联网 发布:淘宝数据魔方破解 编辑:程序博客网 时间:2024/05/20 02:54
1. 每个类的正确初始化过程应当是按照从子类到父类的顺序,依次调用每个类的Designated Initializer。并且用父类的Designated Initializer初始化一个子类对象,也需要遵从这个过程。
2. 如果子类指定了新的初始化器,那么在这个初始化器内部必须调用父类的Designated Initializer。并且需要重写父类的Designated Initializer,将其指向子类新的初始化器。
3. 你可以不自定义Designated Initializer,也可以重写父类的Designated Initializer,但需要调用直接父类的Designated Initializer。
4. 如果有多个Secondary initializers(次要初始化器),它们之间可以任意调用,但最后必须指向Designated Initializer。在Secondary initializers内不能直接调用父类的初始化器。
5. 如果有多个不同数据源的Designated Initializer,那么不同数据源下的Designated Initializer应该调用相应的[super (designated initializer)]。如果父类没有实现相应的方法,则需要根据实际情况来决定是给父类补充一个新的方法还是调用父类其他数据源的Designated Initializer。比如UIView的initWithCoder调用的是NSObject的init。
6.需要注意不同数据源下添加额外初始化动作的时机。
2. 如果子类指定了新的初始化器,那么在这个初始化器内部必须调用父类的Designated Initializer。并且需要重写父类的Designated Initializer,将其指向子类新的初始化器。
3. 你可以不自定义Designated Initializer,也可以重写父类的Designated Initializer,但需要调用直接父类的Designated Initializer。
4. 如果有多个Secondary initializers(次要初始化器),它们之间可以任意调用,但最后必须指向Designated Initializer。在Secondary initializers内不能直接调用父类的初始化器。
5. 如果有多个不同数据源的Designated Initializer,那么不同数据源下的Designated Initializer应该调用相应的[super (designated initializer)]。如果父类没有实现相应的方法,则需要根据实际情况来决定是给父类补充一个新的方法还是调用父类其他数据源的Designated Initializer。比如UIView的initWithCoder调用的是NSObject的init。
6.需要注意不同数据源下添加额外初始化动作的时机。
0 0
- designated initializer
- ios: Designated Initializer
- swift - Designated Initializer & Convenience Initializers
- 正确编写Designated Initializer的几个原则
- (iOS)Storyboard 与 initWithCoder -- designated initializer小结
- 正确编写Designated Initializer的几个原则
- 总结一下学习Designated Initializer的过程
- 正确编写Designated Initializer的几个原则
- 正确编写Designated Initializer的几个原则
- designated initializer:一种特殊的结构体初始化方法
- Failed to call designated initializer on NSManagedObject class 'ClassName'.
- C语言的定制初始化(designated initializer)
- Effective Objective-C 2.0: Item 16:Designated Initializer
- NS_DESIGNATED_INITIALIZER 正确编写Designated Initializer的几个原则
- iOS: 聊聊 Designated Initializer(指定初始化函数)
- iOS: 聊聊 Designated Initializer(指定初始化函数)
- CoreData: error: Failed to call designated initializer on NSManagedObject 的解决方法
- 指定初始化器designated initializer的意义以及[super init...]意义的个人心得
- 好文章。学习
- 15 baseadapter
- 浅谈过载保护
- Android中attr自定义属性详解
- Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈与熟练的掌握Scala语言【大数据Spark实战高手之路】
- designated initializer
- group case then
- 给新建的Cocos2d-x 3.0rc0 的Win32工程添加CocoStudio库
- Ext3文件读写流程概述
- 虚拟机联网问题
- Android基于Cling开发DLNA应用
- 关于投资人的一些事-创业杂记
- hdu 4046 树状数组
- [后缀数组+枚举] hdu 3518 Boring counting