关于便利初始化的内容,我看各位大神的博客中很少人提及,估计是因为知识点比较小,所以没有写!我在这儿以我个人拙见来分析下便利初始化的有关知识!
首先,见名知意,就是为了初始化一个成员变量,为什么叫便利呢,因为我们使用便利初始化的时候直接给对象赋值了,省的第二次对其进行赋值,所以叫便利初始化!
下面我们来看看代码,我们创建一个类,名字是Student
在Student.h中
第一步,声明成员变量 name
1 @interface Student : NSObject{ 2 NSString *name;//声明成员变量 3 }
第二步,声明方法
1 -(Student *)initWithName:(NSString *)newNaw; 2 -(void)sayhi; 3 @end
注意!! 便利初始化方法命名:-(类名 *)initWith成员变量名:(参数类型)参数名 必须按照该格式进行进行方法的声明initWith 中的W 必须大写!!
在Student.m中进行实现
1 #import "Student.h" 2 3 @implementation Student 4 //便利初始化的实现: 5 -(Student *)initWithName:(NSString *)newNaw{ 6 self = [super init];//通过父类,调用init,初始化方法,产生一个对象 7 8 if (self) {//判断是否驰初始化成功,未初始化之前,self = nil 9 //如果初始化成功,则进行相关操作(比如,给成员变量赋值) 10 name = newNaw; 11 } 12 //将初始化完成后的对象返回 13 return self; 14 } 15 -(void)sayhi{ 16 NSLog(@"%@sayhi",name); 17 } 18 @end
在main.h中
直接初始化对象,然后对其进行赋值,然后调用方法!
1 #import <Foundation/Foundation.h> 2 #import "Student.h" 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 5 Student *stu = [[Student alloc]initWithName:@"Hong"];//在给对象初始化的时候直接给对象赋值 6 [stu sayhi];//对象调用方法 7 } 8 return 0; 9 }
ok!关于便利初始化的知识,就分析到这儿,有不足之处,忘各位博友指出,共同进步!