zoukankan      html  css  js  c++  java
  • OC8_代理基本概念

    //
    //  ProtectedDelegate.h
    //  OC8_代理基本概念
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @protocol ProtectedDelegate <NSObject>
    
    - (void)bark;
    
    @end
    
    
    
    //
    //  Person.h
    //  OC8_代理基本概念
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "ProtectedDelegate.h"
    
    @interface Person : NSObject
    {
        id <ProtectedDelegate>_delegate;
    }//对象指针也要遵守协议
    
    @property (retain, nonatomic)id <ProtectedDelegate>delegate;
    
    - (void)go;
    
    @end
    
    
    //
    //  Person.m
    //  OC8_代理基本概念
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "Person.h"
    
    @implementation Person
    
    - (void)go
    {
        [_delegate bark];
    }
    
    @end
    
    
    //
    //  Cat.h
    //  OC8_代理基本概念
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "ProtectedDelegate.h"//包含头文件
    
    @interface Cat : NSObject <ProtectedDelegate>//遵守这个协议
    
    @end
    
    
    //
    //  Cat.m
    //  OC8_代理基本概念
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "Cat.h"
    
    @implementation Cat
    - (void)bark
    {
        NSLog(@"Miao miao miao ...");
    }
    @end
    
    
    
    
    //
    //  Dog.h
    //  OC8_代理基本概念
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "ProtectedDelegate.h"
    
    @interface Dog : NSObject <ProtectedDelegate>
    
    
    @end
    
    
    
    //
    //  Dog.m
    //  OC8_代理基本概念
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "Dog.h"
    
    @implementation Dog
    
    - (void)bark
    {
        NSLog(@"Wang wang wang ...");
    }
    
    @end
    
    
    
    //
    //  main.m
    //  OC8_代理基本概念
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Dog.h"
    #import "Cat.h"
    #import "Person.h"
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            Person *xiaoXin = [[Person alloc] init];
            Dog *dog = [[Dog alloc] init];
            xiaoXin.delegate = dog;
            [xiaoXin go];
            Cat *cat = [[Cat alloc] init];
            xiaoXin.delegate = cat;
            [xiaoXin go];
        }
        return 0;
    }
  • 相关阅读:
    android四大组件--ContentProvider具体解释
    C语言指针的初始化和赋值
    微信游戏《全民炫舞》公司的引擎开发和布料系统技术介绍
    Struts2自己定义拦截器实例—登陆权限验证
    数据仓库与数据挖掘的一些基本概念
    acm省赛选拔组队赛经验谈
    【我所认知的BIOS】—&gt; uEFI AHCI Driver(5) — 第一个protocol最终要開始安装了
    ios项目开发(天气预报项目):使用正则获取 weather.com.cn站点信息
    每日总结-05-16(再见强哥有感)
    编程算法基础-2.7作业-通讯编码-格式检查
  • 原文地址:https://www.cnblogs.com/0515offer/p/4598564.html
Copyright © 2011-2022 走看看