关于写一种的修饰符的理解
在objective-c 2.0中的协议中,可以对协议中的成员函数前面添加修饰符。
@ required
用@ required修饰的协议的成员函数,继承该协议的类就必须实现该协议包含的所有的前面有@required修饰的成员函数,
@ optional
用@optional修饰的协议的成员函数,继承该协议的类就可以有选择性的实现这些协议的成员函数,也就是说,对于有@optional修饰的协议成员函数,继承该协议的类,可以实现该函数,也可以不是实现该成员函数。
这种协议定义的方式,可以看做是非正式的协议。
正式协议:与非正式协议一样,也是一组方法列表,但与非正式协议不同的是:
正式协议要求显式的采用协议,采用协议的办法是在类的@interface声明中列出协议的名称,称遵守该协议,必须实现协议的所有方法
OC2.0的新特性,虽然非正式协议可以在效果上达到,但是不能明确表达这种可以选择的意图
从事iphone开发可能会注意到,Cocoa中许多非正式协议正被带有@optional的正式协议取代
THE END !
2011-07-10