我们在之前的博客中涉及到的函数都没有參数,同一时候返回值也为void,即不须要返回值。
可是在以后的开发中。函数返回值和參数是必须涉及到的。
所以如今我们来讨论这个问题。我们还是以People类为例。
(一)有返回值,而且一个參数
(1)在People.h中声明一个对象方法。注意:该方法中“-”是函数类型;“第一个int”是返回值类型;“ showA:”是函数名;"第二个int"是參数的类型,“a”是參数名:
-(int)showA:(int)a;
(2)在People.m中简单实现该方法,目的是获得该參数值,所以仅仅要返回传入的參数值就可以:
-(int)showA:(int)a{ return a;
}
(3)在main.m中调用showA方法:
People *people = [[People alloc] init];
int A = [people showA:10];
NSLog(@"A = %d",A);
(4)输出结果:符合我们的预期。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。
(二)有返回值,而且两个參数
(1)在People.h中声明一个对象方法,该方法有两个參数,目的是相加两个參数,而且返回。注意:在该方法中,方法名为(比較特殊):showAB: andB: 。第一个參数为(int)a,第二个參数为(int)b.
-(int)showAB:(int)a andB:(int)b;
(2)在People.m中实现该方法:
-(int)showAB:(int)a andB:(int)b{ return a+b;
}
(3)在main.m中调用该方法。须要传入两个int类型的參数。
People *people = [[People alloc] init];
int AplusB = [people showAB:10 andB:20];
NSLog(@"AplusB = %d",AplusB);
(4)输出结果:
。
总结,相对来说,OC的函数调用比C,Java略奇怪,一開始会不适应。兴许仅仅要多练习就可以。
github主页:https://github.com/chenyufeng1991 。欢迎大家訪问!