zoukankan      html  css  js  c++  java
  • Day13 协议

    1 协议,就是class里面必须遵循的约定。例如

    @protocol viewControllerDelegate <NSObject>
    
    -(void)loadMoreData;
    
    @end
    
    
    @interface ViewController ()<viewControllerDelegate>
    @property (weak, nonatomic) IBOutlet UITableView *tableView;
    @property (nonatomic,strong) NSMutableArray *materialArray;
    
    @end
    
    @implementation ViewController
    //必须有loadMoreData
    -(void)loadMoreData{}
    @end
    

    2 可选和必须

      @optional

      @required

    3 调用代理的方法之前最好先做检查一下是否有该方法

    if([self.delegate respondsToSelector:@selector(loadMoreData)]){
            [self.delegate loadMoreData];
        }

     4 补充规则

    //
    //  tableViewFooterModel.h
    //  tuanGou
    //
    //  Created by xin on 15/4/14.
    //  Copyright (c) 2015年 Jackey. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    @class tableViewFooterModel;//注意点
    //协议的命名:当前的view名称+Delegate
    //方法明媚:去掉当前view名称的前缀+含义
    //返回值:当前view
    @protocol tableViewFooterModelDelegate <NSObject>
    
    @optional
    -(void)tableViewFooterModelloadMoreData:(tableViewFooterModel *)view;
    
    @end
    
    @interface tableViewFooterModel : UIView
    
    
    @property (nonatomic,weak) id<tableViewFooterModelDelegate> delegate;
    
    - (IBAction)getMoreData;
    
    @end
    

      

  • 相关阅读:
    E
    D
    C
    B
    Python
    IDEA 设置资源目录
    光猫指示灯含义
    IO模型
    Linux 总目录
    Linux python 使用
  • 原文地址:https://www.cnblogs.com/lihaozhou/p/4430023.html
Copyright © 2011-2022 走看看