IOS之學(xué)習(xí)筆記十五(協(xié)議和委托的使用)
1、協(xié)議和委托的使用
1)、協(xié)議可以看下我的這篇博客
IOS之學(xué)習(xí)筆記十四(協(xié)議的定義和實(shí)現(xiàn)) https://blog.csdn.net/u011068702/article/details/80963731
2)、委托可以叫代理,實(shí)現(xiàn)協(xié)議的類(lèi)的對(duì)象可以叫委托對(duì)象或者代理對(duì)象
3)、關(guān)鍵就是我們?cè)诳刂破骼镱?lèi)(獲取數(shù)據(jù)類(lèi))里面的成員變量需要是一個(gè)委托對(duì)象或者代理對(duì)象
4)、然后調(diào)用控制器里類(lèi)(獲取數(shù)據(jù)類(lèi))里面的方法的時(shí)候會(huì)調(diào)用委托對(duì)象里面定義的方法
2、測(cè)試app啟動(dòng)彈框提示
1)、control.h
#ifndef Control_h
#define Control_h
#import <Foundation/Foundation.h>
//協(xié)議定義
@protocol UpdateAlertDelegate
-(void)updateAlert;
@end
@interface Control : NSObject
//遵循協(xié)議的一個(gè)代理變量定義
@property (nonatomic, weak) id<UpdateAlertDelegate> delegate;
- (void) willShowAlert;
@end
#endif /* Control_h */
2)、control.m
#import <Foundation/Foundation.h>
#import "Control.h"
@implementation Control
- (void) willShowAlert
{
[self.delegate updateAlert];
}
@end
3) 、我們?cè)赩iewController.h文件里面實(shí)現(xiàn)在control.h文件里面定義的協(xié)議
#import <UIKit/UIKit.h>
#import "Control.h"
@interface ViewController : UIViewController<UpdateAlertDelegate>
@end
4)、在ViewController.m文件里面實(shí)現(xiàn)協(xié)議的定義的方法,而且實(shí)例化對(duì)象設(shè)置自己為委托對(duì)象
#import "ViewController.h"
#import "Control.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
Control *control = [Control new];
control.delegate = self;
[control willShowAlert];
}
- (IBAction)ui:(id)sender {
NSLog(@"hello word");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)updateAlert
{
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"提示"
message:@"協(xié)議和代理" delegate:self cancelButtonTitle:nil
otherButtonTitles:@"確定",nil];
alert.alertViewStyle=UIAlertViewStyleDefault;
[alert show];
}
@end
3、效果
作者:chen.yu
深信服三年半工作經(jīng)驗(yàn),目前就職游戲廠(chǎng)商,希望能和大家交流和學(xué)習(xí),
微信公眾號(hào):編程入門(mén)到禿頭 或掃描下面二維碼
零基礎(chǔ)入門(mén)進(jìn)階人工智能(鏈接)