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

你可能感兴趣的:(Objective-C)