zoukankan      html  css  js  c++  java
  • iOS中的delegate和Protocol

    main.m

    Man *laowang = [Man manWithName:@"haohao" gender:@"" age:0];
            
            
            laowang.age = 20;
            
            
            Woman *sister = [Woman womanWithName:@"奶茶" gender:@"" age:0];
            sister.age = 20;
            
            [laowang playGame];
            [laowang makeMoney];
            
            [sister shopping];
            [sister fallInLove];
            
            sister.delegare = laowang;
            
            
            [sister findFloodDirty];
            

    Man.h

    #import <Foundation/Foundation.h>
    #import "Woman.h"
    @interface Man : NSObject<MarryDelegate>
    @property (nonatomic, retain) NSString *name;
    @property (nonatomic, retain) NSString *gender;
    @property (nonatomic, assign) NSInteger age;
    
    - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age;
    + (id)manWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age;
    - (void)sayHi;
    - (void)playGame;
    - (void)makeMoney;
    @end

    man.m

    @implementation Man
    - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age
    {
        if (self = [super init]) {
            self.name = name;
            self.gender = gender;
            self.age = age;
        }
        return self;
    }
    + (id)manWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age
    {
         return  [[Man alloc] initWithName:name gender:gender age:age];
    }
    - (void)sayHi
    {
        NSLog(@"我是%@ ,性别%@,年龄%ld", self.name, self.gender, self.age);
    }
    
    - (void)playGame{
        NSLog(@"小撸怡情,大撸伤身!");
    }
    - (void)makeMoney{
        NSLog(@"挣钱,给老婆花");
    }
    #pragma ---marray
    - (void)cleanHouse
    {
        NSLog(@"结婚扫地,呵呵,赚到了");
    }
    
    - (void)cooking{
        NSLog(@"不敢相信,我做的饭这么好吃");
    }
    
    - (void)washFeet
    {
        NSLog(@"我说洗脚,你就相信");
    }
    
    - (void)washCloth
    {
        NSLog(@"偶尔洗洗");
    }
    
    //生孩子
    - (void)giveBathToChild
    {
        NSLog(@"生孩子是两个人的事");
    }
    
    @end

    Woman.h

    @protocol MarryDelegate <NSObject>
    
    //扫地
    
    - (void)cleanHouse;
    
    - (void)cooking;
    
    - (void)washFeet;
    
    - (void)washCloth;
    
    @optional
    //生孩子
    - (void)giveBathToChild;
    
    @end
    
    
    
    
    
    
    
    
    @interface Woman : NSObject
    @property (nonatomic,retain) NSString *name;
    @property (nonatomic,retain) NSString *gender;
    @property (nonatomic,assign) NSInteger age;
    //代理属性
    //女人的丈夫,必须服从结婚协议  --- MarryDelegate
    @property (nonatomic,assign) id<MarryDelegate> delegare;
    
    - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age;
    + (id)womanWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age;
    - (void)sayHi;
    
    - (void)shopping;
    
    - (void)fallInLove;
    
    
    //地脏了
    - (void)findFloodDirty;
    
    - (void)hungary;
    
    - (void)clothDirty;
    
    - (void)lonely;
    
    
    
    
    
    @end

    woman.m

    #import "Woman.h"
    
    @implementation Woman
    - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age
    {
        if (self = [super init]) {
            self.name = name;
            self.gender = gender;
            self.age = age;
        }
        return self;
    }
    + (id)womanWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age
    {
        return [[self alloc] initWithName:name gender:gender age:age];
    }
    
    
    - (void)sayHi
    {
        NSLog(@"我是%@,%@的,芳龄%ld",self.name, self.gender, self.age);
    }
    
    - (void)shopping
    {
        NSLog(@"哎呀,衣服好漂亮!");
    }
    
    - (void)fallInLove
    {
        NSLog(@"呵呵,又谈恋爱了");
    }
    
    //地脏了
    - (void)findFloodDirty;
    {
        [self.delegare cleanHouse];
    }
    
    - (void)hungary
    {
        [self.delegare cooking];
    }
    
    - (void)clothDirty
    {
        [self.delegare washCloth];
    }
    
    - (void)lonely
    {
        //判断代理是否想去生
        if ([self.delegare respondsToSelector:@selector(giveBathToChild)]) {
            [self.delegare giveBathToChild] ;
        }
    }
  • 相关阅读:
    Python Django框架笔记(三):django工作方式简单说明和创建用户界面
    Python Django框架笔记(二):创建应用和django 管理
    Python笔记(十三):urllib模块
    Python Django框架笔记(一):安装及创建项目
    Python笔记(十二):操作数据库
    Python笔记(十一):多线程
    Python网络爬虫笔记(五):下载、分析京东P20销售数据
    Python笔记(十):正则表达式
    Python网络爬虫笔记(四):使用selenium获取动态加载的内容
    【React Native】Execution failed for task ':app:installDebug'. > com.android.builder.testing.api.DeviceException: No online devices found.
  • 原文地址:https://www.cnblogs.com/wohaoxue/p/4723596.html
Copyright © 2011-2022 走看看