IOS之學習筆記十五(協(xié)議和委托的使用)

1、協(xié)議和委托的使用

1)、協(xié)議可以看下我的這篇博客

IOS之學習筆記十四(協(xié)議的定義和實現(xiàn)) https://blog.csdn.net/u011068702/article/details/80963731

2)、委托可以叫代理,實現(xiàn)協(xié)議的類的對象可以叫委托對象或者代理對象

3)、關鍵就是我們在控制器里類(獲取數(shù)據(jù)類)里面的成員變量需要是一個委托對象或者代理對象

4)、然后調用控制器里類(獲取數(shù)據(jù)類)里面的方法的時候會調用委托對象里面定義的方法

 
2、測試app啟動彈框提示

1)、control.h

    #ifndef Control_h
    #define Control_h
    #import <Foundation/Foundation.h>
     
    //協(xié)議定義
    @protocol UpdateAlertDelegate
    -(void)updateAlert;
    @end
     
     
    @interface Control : NSObject
    //遵循協(xié)議的一個代理變量定義
    @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) 、我們在ViewController.h文件里面實現(xiàn)在control.h文件里面定義的協(xié)議

    #import <UIKit/UIKit.h>
    #import "Control.h"
     
    @interface ViewController : UIViewController<UpdateAlertDelegate>
     
     
    @end

 

4)、在ViewController.m文件里面實現(xiàn)協(xié)議的定義的方法,而且實例化對象設置自己為委托對象

    #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
深信服三年半工作經驗,目前就職游戲廠商,希望能和大家交流和學習,
微信公眾號:編程入門到禿頭 或掃描下面二維碼
零基礎入門進階人工智能(鏈接)