首页 / IOS / iOS 委托模式 理解例子
iOS 委托模式 理解例子
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iOS 委托模式 理解例子,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1731字,纯文字阅读大概需要3分钟。
内容图文
![iOS 委托模式 理解例子](/upload/InfoBanner/zyjiaocheng/1319/b74939e9b1d9485780efe2017a8fe4d7.jpg)
古代希腊有个哲学家,他毕生只做三件事:“吃饭”“睡觉”“工作”。为了更好的生活,提高工作的效率,他决定找个徒弟,把这些事委托给徒弟做。然而要成为他的徒弟,需要实现一个协议,协议要求能够处理睡觉,吃饭,工作这三件事,
这里面涉及到三个对象:
第一: 哲学家 对应一个通用类 Philospher
第二: 协议 对应一个PhilospherDelegate 规定了三种方法 sleep eat work
第三: 徒弟 对应一个委托对象 ViewController
委托协议 :PhilospherDelegate.h
@protocol PhilosopherDelegate @required -(void) sleep; -(void) eat; -(void) work; @end
委托协议不需要.m文件 可以定义在 其他的 .h文件中
委托类 ViewController
#import <UIKit/UIKit.h> #import "PhilosopherDelegate.h" @interface ViewController : UIViewController<PhilosopherDelegate> @end
#import "ViewController.h" #import "Philosopher.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; Philosopher *obj = [[Philosopher alloc ] init]; obj.delegate = self; [obj start]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma -- PhilosopherDelegate 方法实现 -(void) sleep { NSLog(@"sleep..."); } -(void) eat { NSLog(@"eat..."); } -(void) work { NSLog(@"work..."); } @end
哲学家 Philosopher
#import "PhilosopherDelegate.h" @interface Philosopher : NSObject { NSTimer *timer; int count; } @property (nonatomic, weak) id<PhilosopherDelegate> delegate; -(void) start; -(void) handle; @end
#import "Philosopher.h" @implementation Philosopher @synthesize delegate; -(void) start { count= 0; timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(handle)userInfo:nil repeats:YES]; } -(void)handle { switch (count) { case 0: [self.delegate sleep]; count++; break; case 1: [self.delegate eat]; count++; break; case 2: [self.delegate work]; [timer invalidate]; break; } } @end
原文:http://www.cnblogs.com/penger/p/4228303.html
内容总结
以上是互联网集市为您收集整理的iOS 委托模式 理解例子全部内容,希望文章能够帮你解决iOS 委托模式 理解例子所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。