美文网首页
OC init 方法学习

OC init 方法学习

作者: EngineerPan | 来源:发表于2020-04-01 21:51 被阅读0次
- (instancetype)init;
  • 由子类实现,以在为其分配内存后立即初始化新对象;

返回值

一个初始化的对象,如果由于某种原因而无法创建对象,则返回nil;

讨论区

初始化消息与同一行代码中的alloc(或allocWithZone :)消息耦合:

SomeClass *object = [[SomeClass alloc] init];

初始化之前,对象无法使用。

在此方法的自定义实现中,您必须调用super的Initialization,然后初始化并返回新对象。如果新对象无法初始化,则该方法应返回nil。例如,假设的BuiltInCamera类如果在没有相机的设备上运行,则可能从其init方法返回nil。

-(instancetype)init {
    if(self = [super init]){
        // 初始化自我
    }
    return self;
}

在某些情况下,init方法的自定义实现可能返回替代对象。因此,在后续代码中,您必须始终使用init返回的对象,而不是alloc或allocWithZone:返回的对象。

NSObject类中定义的init方法不初始化。它只是返回自我。就可空性而言,调用者可以假定init的NSObject实现不返回nil。

相关文章

网友评论

      本文标题:OC init 方法学习

      本文链接:https://www.haomeiwen.com/subject/irezuhtx.html