• 解决半岛问题 中美对话合作必不可少 2019-03-21
  • 阳泉计划今年在全省率先整体脱贫 2019-03-21
  • 《王者荣耀》Switch版正式公布 今年秋季推出 2019-03-16
  • 十多次告病危 2岁高危白血病男童盼来“生命火种” 2019-03-16
  • 摄艳|本网摄影师赤壁、竹林创作人像尽显侠客风 2019-03-16
  • 我在吃饭,重点在那?重点在饭,难道我只能吃饭吗?看着就想笑 2019-03-10
  • 人民日报社习近平新闻思想理论研讨会发言摘编 2019-03-10
  • 建始白云草地音乐节:醉了游人,火了产业,牵动慈善 2019-03-01
  • “直播政务述职”是与民沟通良机 2019-02-22
  • 熊猫启航计划即将启动 让世界聆听大熊猫声音 2018-12-28
  • 三星侵犯一大学专利 被判支付罚金4亿美元 2018-12-04
  • 以政府拟严打“乱拍摄”以军行为 最高10年监禁 2018-12-04
  • 今天看啥
      热点:

        新疆35选7的开奖号 www.ts3ne.com

        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

        新疆35选7的开奖号 www.ts3ne.comtrue//www.ts3ne.com/IOSjc/1316414.htmlTechArticleiOS, 在实际开发中,协议的应用非常广泛,以下是实际应用的例子。 1、协议的定义: myProtocolDelegate.h // // myProtocolDelegate.h // zlwPlayerAppli...

        相关文章

          暂无相关文章
        相关搜索:

        帮客评论

        视觉看点
      • 解决半岛问题 中美对话合作必不可少 2019-03-21
      • 阳泉计划今年在全省率先整体脱贫 2019-03-21
      • 《王者荣耀》Switch版正式公布 今年秋季推出 2019-03-16
      • 十多次告病危 2岁高危白血病男童盼来“生命火种” 2019-03-16
      • 摄艳|本网摄影师赤壁、竹林创作人像尽显侠客风 2019-03-16
      • 我在吃饭,重点在那?重点在饭,难道我只能吃饭吗?看着就想笑 2019-03-10
      • 人民日报社习近平新闻思想理论研讨会发言摘编 2019-03-10
      • 建始白云草地音乐节:醉了游人,火了产业,牵动慈善 2019-03-01
      • “直播政务述职”是与民沟通良机 2019-02-22
      • 熊猫启航计划即将启动 让世界聆听大熊猫声音 2018-12-28
      • 三星侵犯一大学专利 被判支付罚金4亿美元 2018-12-04
      • 以政府拟严打“乱拍摄”以军行为 最高10年监禁 2018-12-04