三十九、类别 和 协议(三)协议

来源:互联网 发布:数据库exists和in 编辑:程序博客网 时间:2024/05/21 10:12

协议  指的是  一系列措施,这些措施  可以适用于  不同类型的物件。一项协议中的措施  并没有  相应的具体内容。如果  你  希望  一项协议中的措施  适用于  某类物件,那么  我们  就可以说  这类物件  遵循  这项协议。如果  你  让  一类物件  遵循  一项协议,那么  你  就要为  这项协议中的措施  编写  相应的具体内容。

要拟  一份协议  非常  容易,只需要用到  @protocol命令。而  在@protocol命令后面  需要写清楚  协议的名称。最后  还要列举出  这份协议所包含的措施。如果  你  使用  基础框架,你  就会找到  不少协议。比如  如果  你的物件  支持  拷贝,那么  这类物件  就必须遵循  NSCopying这份协议。NSCopying这份协议  位于  NSObject.h这个文件,协议的内容  是  这样的:

如果  你的某类物件  遵循  NSCopying这项协议,那么  你  就必须编写  copyWithZone:这项措施的相应内容。而  下面这行语句

就是告诉  编译器  AddressBook这类物件  遵循  NSCopying这份协议。于是  编译器  希望  在AddressBook这类物件的实施部分  找到  copyWithZone:这项措施的具体内容。

如果  一类物件  遵循  多项协议,那么  也很  简单,只要这样  就可以了:

两项协议名称之间  需要用  逗号  隔开。

如果  你自己  起草  一份协议的话,你  并不需要  编写  这份协议所包含的措施的具体内容。如果  其他开发者  打算遵循  这份协议,那么  这份协议所包含的措施的具体内容  则  由他们  来编写。

如果  某类物件  遵循  一项协议的话,那么  包含在这类物件中的其他类型的物件  都会遵循  这项协议。


原创粉丝点击