一、方法函数中的参数
首先,声明一个方法,如下:
- (int) showWithA :(int)a andB:(int)b
其中:
冒号:代表有参数;
第二个和第三个 int 代表参数类型;
a和b 代表参数名;
第一个int 代表返回值类型,如果是(id)则为万能类型,可以返回任何类型的值;如果是(instancetype),则为当前类型,返回的是当前类的类型。重写初始化方法(init)通常用instancetype类型。
去掉函数(方法)类型、去掉返回值、去掉参数类型、去掉参数名,剩下的就是函数(方法)名,也就是刚才那个方法的方法(函数)名是:showWithA: andB,要注意冒号和空格都是方法(函数)名的一部分。
实现:
-(int)showWithA :(int)a andB:(int)b{
return a+b;
}
调用:
person *p1 = [[person alloc]init];
int a1 = [p1 showWithA:10 andB: 20];
NSLog(@"a1 = %d",a1);
输出结果:
a1 = 30
二、自定义初始化方法
.h文件
-(instancetype)initWithPeopleName: (NSString *)peopleName andPeopleAge :(int)peopleAge;
.m文件
-(instancetype)initWithPeopleName: (NSString *)peopleName andPeopleAge :(int)peopleAge
{
self =[super init]; //此为初始化方法所规定好的东西
if(self){ //self存在的情况下
_peopleName=peopleName;
_peopleAge = peopleAge;
}
return self;
}
这时候在main函数中就可以直接调用自定义的初始化方法了。实现如下:
people *p1 =[[people alloc]initWithPeopleName:@"张三" andPeopleAge:30];
三、重写初始化方法:
.h文件
-(instancetype)init;
.m文件
-(instancetype)init{
self = [super init];
if(self){
_peopleName = @"张三";
_peopleAge = 20;
}
return self;
}
mian.m文件
people *p1 = [[people alloc]init];