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

本文介绍了协议的概念及其在物件遵循过程中的作用。通过定义一组措施,协议确保物件实现特定功能,如支持拷贝功能的物件必须遵循NSCopying协议,并实现copyWithZone:方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值