• IOS-OC delegate


    # OC delegate
    * 定义协议:创建一个属性和方法清单
    * 遵守协议:一个类实现某个协议中规定的方法
    * 一个类可以有其他很多属性或方法,可同时实现多个协议的属性和方法清单

    委托类的头文件

    //delegate 使用的前三步(委托者):1.声明 delegate 原型;2.声明 delegate 变量; 3.调用 delegate 方法
    //Delegate.h
    #import <Foundation/Foundation.h>
    @class ClassName;
    @protocol DelegateName <NSObject>
    @optional
    - (void)showName:(NSString*)Name;
    @end

    委托者的头文件

    //ClassName.h
    #import <Foundation/Foundation.h>
    #import "Delegate.h"
    @interface ClassName:NSObject
    //声明delegate 变量
    //委托是弱引用属性,避免对象及其delegate之间产生强引用循环
    @property (nonatomic,weak) id<DelegateName> delegate;
    @end

    委托者在.m文件中使用delegate 中的方法

    //ClassName.m
    #import "ClassName.h"
    @implementation ClassName
    - (id)init{
    self = [super init];
    if(self){
    //
    }
    return self;
    }
    - (void)useDelegate{
    [_delegate showName:@"SherylHan"];
    }

    被委托者实现delegate的方法

    //ClassB.h
    #import <Foundation/Foundation.h>
    #import "Delegate.h"
    //声明ClassB 遵循delegate
    @interface ClassB: NSObject<DelegateName>
    @end

    main.h中设置delegate的值

    //main.h
    #import <UIKit/UiKit.h>
    #import "AppDelegate.h"
    #import "ClassName.h"
    #import "ClassB.h"
    int main(int argc,char *argv[]){
    @autoreleasepool{
    ClassName *cn = [[ClassName alloc]init];
    ClassB *cb = [[ClassB alloc]init];
    //设置delegate的值
    cn.delegate = cb;
    //cn 接到了调用showName的任务,但是自己做不了,于是交给cb去做,但是要是执行这个任务还是要调用声明任务(delegate)的cn
    [cn showName];
    
    return UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class]));
    }
    }

    被委托者实现delegate的方法

    //ClassB.m
    #import "ClassB.h"
    @implementation ClassB
    - (id) init(){
    self = [super init];
    if(self){
    //
    }
    return self;
    }
    - (void)showName:(NSString*)name{
    NSLog(name);
    }
  • 相关阅读:
    Redis 数据结构之dict
    分布式一致性算法——paxos
    分布式事务、两阶段提交协议、三阶提交协议
    MySQL主从数据同步延时分析
    MySQL数据丢失情况分析
    INSERT ... ON DUPLICATE KEY UPDATE Syntax
    分布式系统的数据一致性
    分布式系统的BASE理论
    分布式系统的CAP理论
    性能指标体系构建
  • 原文地址:https://www.cnblogs.com/HackHer/p/6065401.html
Copyright © 2020-2023  润新知