《Objective-C基础教程》第13章 协议

13.1 正式协议

1、与非正式协议一样,正式协议包含了方法和属性的有名称列表。
2、不同的是,正式协议要求显式地采用(在@interface声明中列出协议的名称)
3、采用协议之后,类就要遵守该协议,实现该协议的所有方法

13.1.1 声明协议
@protocol MySuperDuberProtocol <MyparentProtocol>
-(void)....//需要实现的方法
@end

第一行代码表示MySuperDuberProtocol协议继承于MyparentProtocol协议,因此必须实现两个协议中所有需要实现的方法。
通常可以使用NSObject作为根协议(不要将其与NSObject类混淆)NSObject类复合NSObject协议,这意味着所有的对象都符合NSObject协议

13.1.2 采用协议
@interface Car:NSObject<NSCopying>
{
//method
}
@end

尖括号里面是要实现的协议,如果要实现两个协议,可以

@interface Car:NSObject<NSCopyingNSCoding>

采用某个协议,表明该类的对象可以完成两个重要的操作:
1、能够对自身进行编码或解码
2、能够创建自身的副本

13.1.3 实现协议
13.2 复制

copy消息会告诉对象创建一个全新的对象,并让对象与接收copy的原对象完全一样

13.2.4 协议和数据类型

可以在数据类型中为实例变量和方法参数制定协议名称,有助于检查代码中的错误,例如

-(void)setObjectValue:(id<NSCopying>)object;
13.3 Objective-C 2.0 的新特性
@optional
-(void)...//不一定要实现
@required
-(void)...//一定要实现
13.4 委托方法

委托(delegation)是一个经常与协议共用的特性。委托就是某个对象指定另一个对象处理某些特定任务的设计模式。
使用委托来执行相应方法时,代码首先询问委托是否拥有这个方法的实现,如果实现了,它就会要求委托处理这个方法

13.5 小结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值