您的位置:首页 > 产品设计 > UI/UE

协议(Protocol)的用法

2012-04-19 21:34 471 查看
协议(Protocol)的用法

协议,是通过网络,计算机使用者进行通讯后,互相进行约定规定的集合。两个类进行通讯,用协议就比较方便。
一、说明

  1.协议声明了可以被任何类实现的方法

  2.协议不是类,它是定义了一个其他对象可以实现的接口

3.如果在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议。

  4.协议经常用来实现委托对象。一个委托对象是一种用来协同或者代表其他对象的特殊对象。

  5:委托,就是调用自己定义方法,别的类来实现。

  6.新特性说明

    @optional预编译指令:表示可以选择实现的方法

    @required预编译指令:表示必须强制实现的方法

实例:
B页面Controller添加A页面view,然后在A页面push到C页面Controller,我们知道view不能push到Controller,只能在A页面
委托B页面 push跳转C页面
A.h 声明

@protocol SettingViewDelegate <NSObject>

@optional

-(void)settingViewPushView   ;

@end

@interface A:UIView{

id  <SettingViewDelegate>    delegate  ;



@property  (nonatomic,retain)  id  <SettingViewDelegate>    delegate  ;

A.m

@synthesize   delegate  ;

实现方法:[delegate settingViewPushView];

B.h声明

@interface b : UIView <SettingViewDelegate>

B.m

a.delegate=self;

并且写上push到C页面的方法

-(void)settingViewPushView

。。。。。。


简单的说:

我上班的工作主要内容包括 (1)写代码(2)写文档(3)测试程序(4)接电话(5)会见客户

(1)(2)我自己全权负责,但是后面(3)(4)(5)我不想或者不方便自己做,所以我想找个助手(delegate)帮我做这些事,于是我定了一个招聘要求(Protocol),里写明我的助手需要会做(3)(4)(5)这三件事。很快,我招到一个助手。

我.delegate = 助手;

于是以后每当我遇到需要测试程序或者接电话的活,我就把他转交给助手(delegate)去处理,助手处理完后如果有处理结果(返回值)助手会告诉我,也许我会拿来用。如果不需要或者没有结果,我就接着做下面的事。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息