OC中的委托实例
2016-04-09 22:26
423 查看
这里我用到了一个唱歌的,一个跳舞的,一个指挥,作为委托例子:
协议声明:
舞者:
歌者:
它们同时遵从上面的协议,马戏团指挥有一个属性:
指挥的实现:
使用委托:
输出如下:
协议声明:
@protocol PRRPerformance_Protocol <NSObject> -(void)performSomeAction; @end
舞者:
@implementation Dancer -(void)performSomeAction { NSLog(@"left left right right"); } @end
歌者:
@implementation Singer - (void)performSomeAction { NSLog(@"HA li lu ya!"); } @end
它们同时遵从上面的协议,马戏团指挥有一个属性:
@interface Conductor : NSObject @property id <PRRPerformance_Protocol> performer; -(void)lettingPerformerDoSomething; @end
指挥的实现:
@implementation Conductor -(void)lettingPerformerDoSomething { [[self performer]performSomeAction]; } @end
使用委托:
int main(int argc, const char * argv[]) { @autoreleasepool { Dancer *d = [[Dancer alloc]init]; Singer *s = [[Singer alloc]init]; Conductor *c = [[Conductor alloc]init]; //让表演者为舞者 c.performer = d; //舞者跳舞 [c lettingPerformerDoSomething]; //让表演者为歌者 c.performer = s; //歌者唱歌 [c lettingPerformerDoSomething]; //上面的就相当于数据源是不同对象,然后显示器对象将不同数据源显示到屏幕上,它不关心数据源的类型,只要数据源遵从特定协议(这里的协议是PRRPerformance_Protocol),就可以使用它来输出。 } return 0; }
输出如下:
left left right right HA li lu ya!
相关文章推荐
- C#中的delegate委托类型基本学习教程
- C#中的委托数据类型简介
- C#中委托的进一步理解
- 举例讲解C#编程中委托的实例化使用
- C#使用委托(delegate)实现在两个form之间传递数据的方法
- C#中常见的系统内置委托用法详解
- C#基础之委托用法实例教程
- C#中委托和事件的区别实例解析
- C#中的委托介绍
- .Net常见问题之C#中的委托
- C#中委托的基本概念介绍
- C#委托delegate实例解析
- C#基于委托实现多线程之间操作的方法
- C#委托现实示例分析
- ASP.NET中实现定制自己的委托和事件参数类
- C#委托与事件初探
- jQuery事件绑定和委托实例
- JavaScript的事件代理和委托实例分析
- C#用匿名方法定义委托的实现方法
- C#事件处理和委托event delegate实例简述