zoukankan      html  css  js  c++  java
  • ios 开发 OC编程 类的扩展 协议 延展和 类目

    i

    //

    //  main.m

    //  0C - 08 类的扩展

    //

    //  Created by dllo on 15/11/4.

    //  Copyright (c) 2015 dllo. All rights reserved.

    //


    #import <Foundation/Foundation.h>

    #import "NSString+info.h"

    #import "NSArray+info.h"

    #import "cacl.h"

    #import "Girl.h"

    #import "Boy.h"

    int main(int argc, const char * argv[]) {

        //category 只添加方法不能够添加实例变量

    //    NSString *str = @"aaa";

    //    [str info];

    //    NSArray *Arr = [[NSArray alloc]init];

    //    [Arr info];

        

        

    //    cacl *p = [[cacl alloc]init];

    //    NSInteger ret = [p sorted3number:3 b:4 c:5];

    //    NSLog(@"%ld",ret);

        

        

        //协议

    #warning 1, 有一天蓝鸥来了一个美丽的女孩叫春儿(创建girl对象)

        Girl *girl = [[Girl alloc]init];

        

    # warning 4, 有个男孩一直暗恋春儿(创建boy对象)

        Boy *boy = [[Boy alloc]init];

    #warning 7, 男孩签了代理,变成了女孩协议的代理人(签代理)

        girl.delegate = boy;

    #warning  9 , 小平和春儿结婚了

        [girl getMarriaged];

        return 0;

    }

    //

    //  Boy.h

    //  0C - 08 类的扩展

    //

    //  Created by dllo on 15/11/4.

    //  Copyright (c) 2015 dllo. All rights reserved.

    //


    #import <Foundation/Foundation.h>

    #import "Girl.h"

    #warning 6, 于是男孩签订了协议(签订协议)

    @interface Boy : NSObject <MarriageDelegate>

    - (void)makeMoney;

    @end




    //

    //  Boy.m

    //  0C - 08 类的扩展

    //

    //  Created by dllo on 15/11/4.

    //  Copyright (c) 2015 dllo. All rights reserved.

    //


    #import "Boy.h"


    @implementation Boy


    #warning 5, 男孩发现满足女孩的条件(实现协议方法)

    - (void)makeMoney

    {

        NSLog(@"确实有个岛");

    }

    @end


    //

    //  Girl.h

    //  0C - 08 类的扩展

    //

    //  Created by dllo on 15/11/4.

    //  Copyright (c) 2015 dllo. All rights reserved.

    //


    #import <Foundation/Foundation.h>


    //协议首字母大写

    @protocol MarriageDelegate <NSObject>

    #warning 2, 女孩要征婚,拟订了一份协议(创建协议)

    - (void)makeMoney;


    @end

    @interface Girl : NSObject


    #warning 3, 女孩为应征者提供代理,满足条件的男孩可以签代理(创建代理)


    @property (nonatomic, assign) id< MarriageDelegate> delegate;



    @end



    //

    //  Girl.m

    //  0C - 08 类的扩展

    //

    //  Created by dllo on 15/11/4.

    //  Copyright (c) 2015 dllo. All rights reserved.

    //


    #import "Girl.h"


    @implementation Girl

    -(void)getMarriaged

    {

    #warning 8, 结婚前女孩验证了男孩的条件 (调用协议方法)

        [self.delegate makeMoney];

    }

    @end


    ****************************************************************************************协议的创建全过程
  • 相关阅读:
    Select * 一定不走索引是否正确?
    csshack技术
    ios学习笔记之UIViewControl生命周期
    selenium webdriver (python)
    string中Insert与Format效率对比、String与List中Contains与IndexOf的效率对比
    HDU 2083 简易版之最短距离
    xtrabackup支持的engine
    C++可变参数的另一种实现
    程序员应具备的素质(国内的大多程序员生产力不够,所以只能早早转行)
    Qt导出Excel的简单实现
  • 原文地址:https://www.cnblogs.com/yuhaojishuboke/p/5043114.html
Copyright © 2011-2022 走看看