蓝懿IOS委托模式代理模式
?
今天劉國斌老師講了有關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;
}
?
轉載于:https://www.cnblogs.com/lanyisanqqi/p/5100021.html
總結
以上是生活随笔為你收集整理的蓝懿IOS委托模式代理模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【DFS】NYOJ-325-zb的生日
- 下一篇: BURP 测试出 OPTIONS PUT