Objective-C中的协议(Protocol)类似于常用的接口,协议(Protocols)中定义的方法,在类中实现。协议(Protocol)通常用来实现委托对象(Delegate Object)。委托对象(Delegate Object)一般用来自己定义行为或者动作,也就是调用自己定义方法,但自己不实现该方法,委托其它的类来实现该方法。
以买票为例,现在没票了,找个代理买
1、首先定义一个协议,即声明协议
@protocol TicketDelegate <NSObject>
//返回票价
- (double)ticketPrice;
//还剩下多少张票
- (int)leftTicketsNumber;
@end2、代理遵守这个协议
@interface Agent : NSObject <TicketDelegate>
@end3、在Person类中,声明@property需要遵守协议的变量,然后声明一个买电影票的方法
@interface Person : NSObject
@property (nonatomic,strong) id<TicketDelegate> delegate;//这里不要写死了是那个代理类,使用id
//买电影票
- (void)buyTicket;
@end4、Person类的实现
@implementation Person
- (void)buyTicket
{
double price = [_delegate ticketPrice];
int number = [_delegate leftTicketsNumber];
NSLog(@"通过代理的帮忙,票价=%f,还剩下%d张票",price,number);
}
@end这样就完成了吗,买票的事情。
总结:
简单来说,通过代理来完成某个事。

1063

被折叠的 条评论
为什么被折叠?



