OC学习之 protocol(协议)

protocol

OC中的protocol是一个待实现的方法列表,与非正式协议不同,正式协议要求显式的采用协议。

声明协议

@protocol NSCopying.  //这是Cocoa声明的一个协议

- (id) copyWithZone: (NSZone *)zone;

@end

使用协议

//采用一个协议
@interface Car : NSObject <NSCopying> {
    //instance variables
}
// methods

@end //Car

//采用两个协议
@interface Car : NSObject <NSCopying, NSCoding> {
    // instance variables
}

// methods

@end //Car

可以按任意顺序列出这些协议,没有任何影响。

下面写出Car类的copyWithZone方法的实现

- (id) copyWithZone: (NSZone *) zone {
	Engine *engineCopy;
	engineCopy = [[[self class] allocWithZone: zone] init];
	return engineCopy;
}// copyWithZone

// [self class] 正在接受copy消息的对象所属的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值