一、说明
1.协议声明了可以被任何类实现的方法
2.协议不是类,它是定义了一个其他对象可以实现的接口
3.如果在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议。
4.协议经常用来实现委托对象。一个委托对象是一种用来协同或者代表其他对象的特殊对象。
5:委托,就是调用自己定义方法,别的类来实现。
6.新特性说明
@optional预编译指令:表示可以选择实现的方法
@required预编译指令:表示必须强制实现的方法
二、定义
.h
@protocol ContactCtrlDelegate
-(void)DismissContactsCtrl;
@end
@interface ContactsCtrl : UIViewController {
id <ContactCtrlDelegate> delegate;
}
@property (nonatomic, assign) id <ContactCtrlDelegate> delegate;
.m
@synthesize delegate;
三、例子
例如:UITextView
@protocol UITextViewDelegate <NSObject>
@optional
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;
- (void)textViewDidBeginEditing:(UITextView *)textView;
- (void)textViewDidEndEditing:(UITextView *)textView;
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
- (void)textViewDidChange:(UITextView *)textView;
- (void)textViewDidChangeSelection:(UITextView *)textView;
@end
如果要调用以上这些方法,就必须设置UITextView的委托:TextView.delegate = self;
IOS protocol 用法
原创
©著作权归作者所有:来自51CTO博客作者深圳大树的原创作品,请联系作者获取转载授权,否则将追究法律责任
协议,是通过网络,计算机使用者进行通讯后,互相进行约定规定的集合。两个类进行通讯,用协议就比较方便。下面是 CocoaChina 版主“angellixf”为新手写的协议入门介绍以及代码例子,希望对刚入门开发者有所帮助
下一篇:javascript 要点
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Artemis 命令用法
Artemis高级用法
读取文件 shell脚本 批量删除 mq artemis -
iOS protobuf格式 protocol ios
iOS中delegate、protocol的关系 刚开始接触iOS,对delegate、protocol这两个概念比较模糊。参考了一些资料,记录下来体会。 1.protocol protocol和in
iOS protobuf格式 #import iOS Apple -
安装centos7 配置dns
一:机群数量看公司业务需求,至少要三台。作者这里做演示,所以使用VM虚拟三台主机(cdh不支持docker_cluster)。对于物理主机请参考作者另一篇文章制作好Centos启动盘[1]。接下来开始装Centos,我用的是7.6dvd中basic webserver,添加了perl依赖的安装模式,因为mysql安装和cdh安装需要perl,关于内存设置我等下会讲,现在先搭一个机器出来。
安装centos7 配置dns centos7 dns配置 centos7 关闭selinux centos7 运行 jar centos7修改主机名