Objective-C学习笔记-init

1.如果一个类没有实现init方法,那么在调用init初始化的时候所有成员变量都会被初始化为0

2.覆盖NSObject的init方法,instancetype代表返回当前类的实例,在旧版本OC里,还会使用id作为返回类型。因为基类的构造函数有可能返回nil,所以这里需要判断是否为空,这是苹果公司推荐写法,不过很多代码没有做这一步检查

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

3.你也可以创建带有参数的构造函数,和Java不同,当你创建一个构造函数的时候,默认的构造函数依然存在

-(instancetype)initWithName:(NSString *)name
{
    self=[super init];
    if (self){
        //初始化操作
        self.name=name;

    }
    return self;
}

4.子类自定义了一个构造函数,但是使用的时候有可能不小心调用到基类的构造函数,这样会导致子类的部分成员变量没有被初始化,为了防止这种情况,需要重写基类的构造函数

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容