Objective-C创建对象的方法和 Swift 天差地别,Swift 创建对象的步骤可以简要总结为:
-
自底向上(从子类到父类),初始化所有的储存属性。
-
第一点结束后,才能使用属性和方法。
想要了解更多关于Swift初始化对象的知识,可以看我之前的这篇文章。
而 OC 创建对象的特点是:
-
不需要给属性设定默认值, Objective-C 会自动把对象设定为 nil,数字设定为 0。
-
初始化自己的属性之前,必须要调用父类的 init 方法。
-
初始化完自己的属性之前,你可以在你的初始化器里调用其他的方法。
-
所有的初始化器都默认是失败的(返回 nil),在继续之前下一次的操作之前,你必须要先去确认初始化是否成功。
-
初始化的返回值是
self
下面解释一下OC创建对象的特点:
因为第二和第三点是基于第一点成立的,因为 Objective-C 会自动的给所有属性赋值,所以在初始化完成之前,你可以调用别的方法,包括了父类的 init。
因为第四和第五点,一般使用如下的初始化方法:
- (instancetype) init {
if (self = [super init]) {
// 初始化自己的属性,调用其他方法
}
return self;
}
网友评论