欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

2020-09-28

程序员文章站 2022-09-29 17:36:20
protocol创建一系列方法的列表,其中声明的方法可以被任何类实现。这种模式一般称为代理模式只要想监听一个类1.声明代理声明一个代理@protocol ButtonDelegate -(void) onClick;@end2.被监听者,比如一个按钮被点击。在属性中实现了监听器,这时候就可以出发协议中的函数@interface button : NSObject-(void)click;@end@implementation....

protocol创建一系列方法的列表,其中声明的方法可以被任何类实现。这种模式一般称为代理模式

只要想监听一个类

1.声明代理

声明一个代理

@protocol ButtonDelegate <NSObject>
-(void) onClick;
@end

2.被监听者,比如一个按钮被点击。在属性中实现了监听器,这时候就可以出发协议中的函数

@interface button : NSObject

-(void)click;

@end
@implementation button
-(void)click{
NSLog(@"我被点击了");
[_delegate onClick];
}
@end

3.监听者,要设置代理

@interface buttonListener : NSObject<ButtonDelegate>
@end

 

@implementation

//实现代理的函数
-(void)onClick{
NSLog(@"按钮被点击了");
}

@end

 

main 

button *btn = [[button alloc]init];

buttonlistener * = [[buttonlistener  alloc]init];

btn.delegate = buttonlistener;

[btn click];

///

多个按钮被点击了咋办

1.声明代理

@protocol ButtonDelegate <NSObject>
-(void) onClick:(button*)btn;
@end

2.被监听的button

if([_delegate respondsToSelector:@selector(onClick:)])
{

[_delegate onClick:self];

}else
{

NSLog(@"监听者未实现");

}

 

本文地址:https://blog.csdn.net/yonggandess/article/details/108850392

相关标签: ObjectC