zoukankan      html  css  js  c++  java
  • iOS 关于iOS开发中的delegate

    有A、B两个对象,A要完成某件事,想让B帮它做。

    这时候,A中就要实例化一个B的对象b,A还要在头文件中声明协议,然后在B中实现协议中对应的方法。

    这时候再把A的delegate设置为b,在需要的地方,就可以调用B来完成任务了。

    //  main.m
    #import <Foundation/Foundation.h>
    #import "A.h"
    #import "B.h"
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            // insert code here...
            A *a = [[A alloc] init];
            B *b = [[B alloc] init];
            a.delegate = b;
            [a doSomething];
        }
        return 0;
    }
    
    
    //  A.h
    #import <Foundation/Foundation.h>
    #import "CertainDelegate.h"
    
    @interface A : NSObject
    @property (weak,nonatomic) id<CertainDelegate> delegate;
    - (void)doSomething;
    @end
    
    
    
    //  A.m
    #import "A.h"
    #import "B.h"
    
    @interface A ()
    @end
    
    @implementation A
    - (void)doSomething{
        [_delegate requiredFunc];
    }
    
    @end
    
    
    
    //  B.h
    #import <Foundation/Foundation.h>
    #import "CertainDelegate.h"
    
    @interface B : NSObject<CertainDelegate>
    @end
    
    
    
    //  B.m
    #import "B.h"
    
    @interface B ()
    @end
    
    @implementation B
    -(void)requiredFunc{
        NSLog(@"requiredFunc is running.");
    }
    @end
    
    
    
    
    //  CertainDelegate.h
    #import <Foundation/Foundation.h>
    
    @protocol CertainDelegate <NSObject>
    - (void)requiredFunc;
    @end

    推荐深度阅读文章

    Stay hungry,stay foolish.
  • 相关阅读:
    甲方提供核心jar包,添加到本地maven仓库
    Flexigrid详解
    在idea中使用CheckStyle来规范代码
    对List集合中的对象进行按某个属性排序
    Layui数据表格总结篇
    jQuery入门看这一篇就够了
    JAVA常量类的实现方式
    HTML5和CSS3提高
    CSS高级技巧总结
    CSS入门总结
  • 原文地址:https://www.cnblogs.com/ficow/p/5034750.html
Copyright © 2011-2022 走看看