您的位置:首页 > 移动开发 > IOS开发

蓝懿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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: