• 十九大代表卢丽安利用周末与在沪台胞分享她参会心得  2019-05-19
  • (两会受权发布)最高人民法院院长简历 2019-05-14
  • 巫山县大峡村:深度贫困村的脱贫之变 2019-05-12
  • “关注泌尿健康”三金片媒体沙龙北京站 2019-05-09
  • 人民网评:教师欠薪为何又成新闻了? 2019-05-07
  • 涪陵:全国人大代表刘家奇院坝讲“两会” 乡亲点赞“六子致富经” 2019-05-07
  • 海南将与香港携手开拓国际客源市场--旅游频道 2019-05-01
  • 赵孟頫:书法大师是怎么炼成的? 2019-04-28
  • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-04-25
  • 紫光阁中共中央国家机关工作委员会 2019-04-25
  • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
  • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
  • 西安启动唐长安城明德门遗址保护工程 2019-04-07
  • 2019款沃尔沃S60高性能版官图发布 本月20号正式亮相 2019-04-07
  • 银保监会新规剑指大企业多头融资和过度融资 2019-04-03
  • 今天看啥
      热点:

        新疆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-05-19
      • (两会受权发布)最高人民法院院长简历 2019-05-14
      • 巫山县大峡村:深度贫困村的脱贫之变 2019-05-12
      • “关注泌尿健康”三金片媒体沙龙北京站 2019-05-09
      • 人民网评:教师欠薪为何又成新闻了? 2019-05-07
      • 涪陵:全国人大代表刘家奇院坝讲“两会” 乡亲点赞“六子致富经” 2019-05-07
      • 海南将与香港携手开拓国际客源市场--旅游频道 2019-05-01
      • 赵孟頫:书法大师是怎么炼成的? 2019-04-28
      • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-04-25
      • 紫光阁中共中央国家机关工作委员会 2019-04-25
      • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
      • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
      • 西安启动唐长安城明德门遗址保护工程 2019-04-07
      • 2019款沃尔沃S60高性能版官图发布 本月20号正式亮相 2019-04-07
      • 银保监会新规剑指大企业多头融资和过度融资 2019-04-03