看官们,我们在上一章回中介绍类中封装相关的内容,封装的内容中包含方法,我们当时只做了简单的说明,本章回我们全面介绍方法的定义与使用。
我们先给一个定义方法的模板:
-(type1) funcName:(type2)param1 and:(type3) param2;
接下来我们对该模板进行解释。
- 模板中的减号表示该方法为类的对象拥有,也可以换成加号,它们的区别我们在上一章回中介绍过;
- type1表示方法的返回类型,类型可以是基本类型或者复合类型,如果没有返回值,那么就写void;
- type2和type3都方法参数的类型,和tyep1一样,它们可以是基本类型或者复合类型;
- param1和param2是参数的名字;
- 方法的名字是funcName:and:,这里的and可以省略,但是冒号不能省略,不过在实际中我们建议保留and,因为通过它可以直观地明白参数的含义。就像我们在上一章回中的示例代码:connect:and:方法。一看就知道是把两个值连接到了一起。
关于方法的参数可以依据需要来确定,可以是一个,多个或者没有参数,如果没有参数就不需要冒号以及后面的内容了。特别地强调一下,OC的方法定义语法比较特殊,刚开始接触
时会有点不习惯,不过用多以后就习惯了。
看官们,如果明白方法的定义后,理解方法的实现就容易,只需要在方法定义后面加上一个大括号,然后把实现方法的内容放到大括号中就可以。是不是很容易。不过看官们不要高兴的太早,虽然我们现在已经知道了如果去定义和实现方法,但是如何使用方法仍然是一个不小的挑战。接下来我们一起完成这个挑战。
首先列出使用方法的模板:
[responser funcName]
- 在模板中我们借助中括号来使用方法;
- responser可以是类的对象或者类本身;
- funcName是方法的名称;
使用类或者类的对象调用方法。另外在有些地方会把调用方法的这种机制叫作消息传递或者消息响应。总之,不管它叫什么,本质上都是使用方法。
最后我们对本章回的内容做一下总结:
- 1.定义方法的标准模板:
-(type1) funcName:(type2)param1 and:(type3) param2
; - 2.使用方法的模板:
[responser funcName]
; - 3.在OC中定义和使用方法的语法都比较特殊,希望大家在参考上一章回代码的同时,多加练习;
看官们,欲知后事如何且听下回分解!