美文网首页
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