标签:
今天刘国斌老师讲了有关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;
}
标签:
原文地址:http://www.cnblogs.com/lanyisanqqi/p/5100021.html