今天看啥
    热点:

      天发国际娱乐官网:”企业改革专家周放生对记者表示。

      iOS,


      在实际开发中,协议的应用非常广泛,以下是实际应用的例子。

      1、协议的定义:

      myProtocolDelegate.h

      //
      //  myProtocolDelegate.h
      //  zlwPlayerApplication
      //
      //  Created by xjz on 2018/3/30.
      //  Copyright ? 2018年 xujinzhong. All rights reserved.
      //
      
      #import <Foundation/Foundation.h>
      
      // 协议定义
      @protocol SampleProtocolDelegate <NSObject>
      
      @required
      - (void) processCompleted;
      
      @end
      
      @interface myProtocolDelegate : NSObject
      {
          // Delegate to respond back
          id <SampleProtocolDelegate> _delegate;
      }
      
      @property (nonatomic,strong) id delegate;
      
      -(void)startSampleProcess; // Instance method
      
      @end

      myProtocolDelegate.m

      //
      //  myProtocolDelegate.m
      //  zlwPlayerApplication
      //
      //  Created by xjz on 2018/3/30.
      //  Copyright ? 2018年 xujinzhong. All rights reserved.
      //
      
      #import "myProtocolDelegate.h"
      
      @implementation myProtocolDelegate
      
      -(void)startSampleProcess{
          if ([self.delegate respondsToSelector:@selector(processCompleted)]) {
              [self.delegate processCompleted];
          }
      }
      
      @end

      2、协议的调用和实现

      ViewController.h

      //
      //  ViewController.h
      //  zlwPlayerApplication
      //
      //  Created by xjz on 2018/1/31.
      //  Copyright ? 2018年 xujinzhong. All rights reserved.
      //
      
      #import <UIKit/UIKit.h>
      
      @interface ViewController : UIViewController
      
      
      @end

      ViewController.m

      //
      //  ViewController.m
      //  zlwPlayerApplication
      //
      //  Created by xjz on 2018/1/31.
      //  Copyright ? 2018年 xujinzhong. All rights reserved.
      //
      
      #import "ViewController.h"
      #import "Masonry.h"
      #import "ReactiveObjC.h"
      #import "myProtocolDelegate.h"
      
      @interface ViewController ()<SampleProtocolDelegate>
      
      @property(nonatomic, strong) UIButton *btnDone;
      @property(nonatomic, strong) UILabel  *lableMsg;
      
      @end
      
      @implementation ViewController
      
      - (void)viewDidLoad {
          [super viewDidLoad];
          
          self.view.backgroundColor = [UIColor whiteColor];
          
          myProtocolDelegate *myDelegate = [[myProtocolDelegate alloc] init];
          myDelegate.delegate = self;
          
          self.lableMsg.text = @"显示内容";
          
          [[self.btnDone rac_signalForControlEvents:UIControlEventTouchDown] subscribeNext:^(__kindof UIControl * _Nullable x) {
              [myDelegate startSampleProcess];
          }];
      }
      
      -(UIButton *)btnDone{
          if (!_btnDone) {
              _btnDone = [UIButton new];
              _btnDone.backgroundColor = [UIColor grayColor];
              _btnDone.layer.cornerRadius = 4.f;
              _btnDone.layer.masksToBounds = YES;
              [_btnDone setTitle:@"Done" forState:UIControlStateNormal];
              [self.view addSubview:_btnDone];
              
              [_btnDone mas_makeConstraints:^(MASConstraintMaker *make) {
                  make.center.equalTo(self.view);
                  make.width.offset(100);
                  make.height.offset(80);
              }];
          }
          return _btnDone;
      }
      
      -(UILabel *)lableMsg{
          if (!_lableMsg) {
              _lableMsg = [UILabel new];
              _lableMsg.font = [UIFont systemFontOfSize:26.f];
              _lableMsg.textColor = [UIColor redColor];
              _lableMsg.textAlignment = NSTextAlignmentCenter;
              [self.view addSubview:_lableMsg];
              
              [_lableMsg mas_makeConstraints:^(MASConstraintMaker *make) {
                  make.bottom.equalTo(self.btnDone.mas_top).offset(-20);
                  make.centerX.equalTo(self.view);
                  make.width.equalTo(self.view);
                  make.height.offset(80);
              }];
          }
          return _lableMsg;
      }
      
      #pragma mark - Sample protocol delegate
      -(void)processCompleted{
          static NSInteger idx = 1;
          self.lableMsg.text = [NSString stringWithFormat:@"代理-%zi", idx++];
      }
      
      @end

      www.1click-soft.comtruehttp://www.1click-soft.com/IOSjc/1316414.htmlTechArticleiOS, 在实际开发中,协议的应用非常广泛,以下是实际应用的例子。 1、协议的定义: myProtocolDelegate.h // // myProtocolDelegate.h // zlwPlayerAppli...

      相关文章

        暂无相关文章
      相关搜索:

      帮客评论

      视觉看点
      百度 360 搜狗