蓝懿IOS委托模式代理模式
2016-01-04 19:30
537 查看
今天刘国斌老师讲了有关oc语言里的委托模式(代理模式),通过了一个打地鼠的游戏讲解了委托模式的功能作用,之后连带讲解了协议的书写和使用。
打地鼠功能包括屏幕随机出现地鼠,点击消失,如果不点击5秒后自动消失,屏幕右上角有一个label显示点击的数量;编写思维是,首先在文件里粗昂见一个类,在类里重写init方法,加上每。5秒出现的事件,倒入viewcontroler文件,在地鼠类里声明一个属性delegate,在button点击事件加上创建对象点delegate调用viewcontroler里的加分方法。
协议的使用时先创建对象,三步顺序 一般都是用苹果给我们写好的控件,不用自己写协议。
一,用对象点delegate
二,如果能点出delegate那么该控件就有协议,到interface上写上协议
三,看协议里是否有必须执行的方法
- (void)viewDidLoad {
[super viewDidLoad];
self.lb=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 55,55)];
self.lb.backgroundColor=[UIColor redColor];
self.lb.text=@"0";
[self.view addSubview:self.lb];
[NSTimer scheduledTimerWithTimeInterval:1 target:selfselector:@selector(moo) userInfo:nil repeats:YES];
}
-(void)moo{
Mouse *mm=[[Mousealloc]initWithFrame:CGRectMake(arc4random()%333,arc4random()%666, 33, 33)];
// 委托模式,实例一个对象,在Mose里又一个属性 ViewController *vc,叫对象mm点出他的属性,之后把自身的页面给mm里的属性vc。
mm.vc=self;
[self.view addSubview:mm];
}
// 声明方法,叫Mouse类每次调用此方法是label的text数值加一
-(void)addS{
int old=self.lb.text.intValue;
int new=old+1;
self.lb.text=@(new).stringValue;
}
相关文章推荐
- IOS开发之----四舍五入问题
- ios开发之《版本控制》
- 【iOS系列】-A server with the specified hostname could not be found.问题解决
- iOS - 加解密(对称,非对称)(AES DES base64这里都有),数字签名,cookie
- IOS中把字符串加密/IOS中怎么样MD5加密/IOS中NSString分类的实现
- iOS学习笔记之故事版和音乐播放等
- iOS 通知推送APNS
- IOS 本地化
- Cordova iOS Header和Statusbar 重疊
- iOS富文本编辑(在label里显示文字和图片)
- IOS 分享你最喜欢的技巧和提示
- IOS中(Xcode) DEBUG模式(RELEASE模式)控制NSLog输出,NSLog两种不同情况的输出方式
- iOS中NSInvocation的使用
- iOS NSClassFromString
- 整理下iOS常用的三方库,以备查阅。2015年11月21日更新
- 运维监控利器Nagios之:nagios配置详解
- iOS中的label加载HTML文件
- iOS开发笔记
- iOS 中如何添加应用自己的字体
- iOS开发中常用的类库