• 委托代理


    从前有一个公司,公司的名字叫做"来福"。
    Xcode->Create a new Xcode project->OS X->Application->Command Line Tool->Product Name is "LaiFu"->Create.
    公司里面有一个老板。
    New File->Objective-C class->Boss->Subclass of NSObject->Create.
    有一天,老板想买一天电脑。
    @interface Boss : NSObject
    - (void)willBuyAComputer;
    @end
    @implementation Boss
    - (void)willBuyAComputer
    {
    }
    @end
    刚刚起身忽然想起来,今天要去北京开会。于是老板决定让员工帮他买。老板起草了一份名为“买电脑委托书”的文件。
    New File->Objective-C protocol->BuyComputerDelegate->Next->Create.
    文件内容为“去帮我买一台电脑”。
    @protocol BuyComputerDelegate<NSObject>
    - (void)buyAComputer;
    @end
    老板把“买电脑委托书”揣在了身上。
    in Boss.h
    #import "BuyComputerDelegate"
    in @interface
    @property (assign, nonatomic) id<BuyComputerDelegate> buyComputerDelegate;
    in Boss.m
    - (void)willBuyAComputer
    {
    [self.buyComputerDelegate buyAComputer];
    }
    老板发现小明目前闲着没事干。
    New File->Objective-C class->XiaoMing->Subclass of NSObject->Create.
    老板问小明,“你有时间帮我去买个电脑么?”小明说,“why not?in XiaoMing.h
    #import "BuyComputerDelegate"
    @interface XiaoMing : NSObject <BuyComputerDelegate>
    in XiaoMing.m
    @implementation XiaoMing
    - (void)buyComputer
    {
    }
    @end
    老板把“买电脑委托书”交给了小明说,“那你去买吧。”
    in main.m
    #import "Boss.h"
    #import "XiaoMing.h"
    @autoreleasepool{
    Boss *boss = [[Boss alloc] init];
    XiaoMing *xiaoMing = [[XiaoMing alloc] init];
    boss.buyComputerDelegate = xiaoMing;
    [boss willBuyComputer];
    }
    过了一会儿,小明回来了,对老板说,“我买回来了一台电脑。”
    in XiaoMing.m
    - (void)buyComputer
    {
    NSLOG(@"I has bought a computer.");
    }
    更多 0
  • 相关阅读:
    IO模式 select、poll、epoll
    C++设计模式——SingleTon单件模式
    C和C++区别——前置自增与后置自增
    进程——父子进程共享
    一个例子理解c++函数模板的编译
    C/C++多参数函数参数的计算顺序与压栈顺序
    经常登录Linux,用户密码背后的知识了解一下
    一道值得思考的fork()面试题
    vim实用快捷键整理
    Linux硬链接与软连接
  • 原文地址:https://www.cnblogs.com/jiackyan/p/3481189.html
Copyright © 2020-2023  润新知