设置可变传参的初始化方法
-(instancetype) initwithHour :(int)h and Minute :(int)m and second :(int) s;
然后在实现部分
-(instancetype) initwithHour :(int)h and Minute :(int)m and second :(int) s;
{
self=[super init];
if (self !=nil ) {
Hour=h;
Minute=m;
Second=s;
}
}
然后下方主函数 main 里面进行直接赋值
Time*tm2=[[Time alloc ]initwithHour :13 and Minute :30 and second :0 ];
后台直接显示13:30:00
重写 init 只需要在实现部分直接写 不需要在声明的.h文件重新声明
init是 NSObject 的一个方法
对于继承 于 NSObject 的类
在为内存开辟空间的时候 只是初始化父类的元素 子类的元素需要重新初始化 初始化如下
先初始化父类的部分
self=[ super init ];
//然后初始化自己的部分 先判断self 是否为nil nil 说明 父类初始化失败
-(id) init //id 是指向任意“对象”的类型 也可以填写instancetype 他只用在初始化里面进行
{
if (self=[super init]) {//super 是初始化父类的部分 如果父类初始化失败 那么self 是nil
{
m_M=10;
m_s=10;
m_H=20;
}
return self;
}
}
}
}
时间: 2024-11-02 23:22:40