zoukankan      html  css  js  c++  java
  • OC10_代理反向传值

    //
    //  ProtectedDelegate.h
    //  OC10_代理反向传值
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @protocol ProtectedDelegate <NSObject>
    
    - (void)bark;
    
    @end
    
    
    //
    //  Dog.h
    //  OC10_代理反向传值
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "ProtectedDelegate.h"
    #import "Person.h"
    
    @interface Dog : NSObject <ProtectedDelegate>
    
    @property (nonatomic)Person *master;
    
    @end
    
    
    
    //
    //  Dog.m
    //  OC10_代理反向传值
    //
    //  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 ...");
        [self.master report:arc4random()%100+1];
    }
    
    @end
    
    
    
    //
    //  Person.h
    //  OC10_代理反向传值
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "ProtectedDelegate.h"
    @interface Person : NSObject
    
    @property (assign, nonatomic) id <ProtectedDelegate>delegate;
    
    - (void)go;
    
    
    - (void)report:(NSInteger)count;
    
    @end
    
    
    
    //
    //  Person.m
    //  OC10_代理反向传值
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "Person.h"
    
    @implementation Person
    
    - (void)go
    {
        [self.delegate bark];
    }
    
    - (void)report:(NSInteger)count
    {
        NSLog(@"killed %li people",count);
    }
    
    @end
    //
    //  main.m
    //  OC10_代理反向传值
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Person.h"
    #import "Dog.h"
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            Person *xiaoXin = [[Person alloc] init];
            Dog *dog = [[Dog alloc] init];
            xiaoXin.delegate = dog;
            dog.master = xiaoXin;
            
            [xiaoXin go];
        }
        return 0;
    }
  • 相关阅读:
    实现控件的拖拽
    自定义控件——安卓旋转动画
    MD5简单实例
    TextView来实现跑马灯的效果
    Intent的简单使用
    SharedPreferences的封装
    ViewPager+fragment的使用
    安卓定时器
    2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
    2020重新出发,MySql基础,MySql表数据操作
  • 原文地址:https://www.cnblogs.com/0515offer/p/4598595.html
Copyright © 2011-2022 走看看