美文网首页八天学会OC
第06天OC语言(13):Block和typedef

第06天OC语言(13):Block和typedef

作者: liyuhong | 来源:发表于2017-07-22 08:58 被阅读19次
    • 不要等到明天,明天太遥远,今天就行动。
    须读:看完该文章你能做什么?

    1.怎么使用一个typedef定义一个block的数据类型

    学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)

    1.什么是typedef,
    2.什么是block,block怎么声明、实现、调用


    一、本章笔记
     typedef 可以给一个已知的数据类型 起一个别名(外号)
     二、给block的数据类型起一个别名
        int (^Block)(int,int) 是一个数据类型
        那么使用typedef 起一个别名 
        typedef int (^Block)(int,int);  // 别名就是Block
    
    
    二、code
    main.m
    #pragma mark 13-Block和typedef
    #pragma mark - 代码
    #import <Foundation/Foundation.h>
    #pragma mark 类
    int sum(int v1,int v2)
    {
        return v1 + v2;
    }
    int minus(int v1,int v2)
    {
        return v1 - v2;
    }
    typedef int(*calculte)(int,int);
    
    // block typedef
    typedef int (^Block)(int,int);
    
    
    #pragma mark - main函数
    int main(int argc, const char * argv[])
    {
    #pragma mark 指向函数的指针 使用typedef
    //    int(*sumP)(int,int);
    //    sumP = sum;
        calculte sumP = sum;
        NSLog(@"sum = %i",sumP(10,20));
        
    //    int(*minP)(int,int);
    //    minP = minus;
        calculte minP = minus;
        NSLog(@"min = %i",minP(10,20));
    
        NSLog(@"---");
    #pragma mark block 使用typedef
    //    int (^sumBlock)(int,int);
        Block sumBlock = ^(int v1 ,int v2){
            return v1 + v2;
        };
        NSLog(@"sumBlock = %i",sumBlock(10,20));
    
    //    int (^minusBlock)(int,int);
        Block minusBlock = ^(int v1 ,int v2){
            return v1 - v2;
        };
        NSLog(@"sumBlock = %i",minusBlock(10,20));
        return 0;
    }
    
    

    相关文章

      网友评论

        本文标题:第06天OC语言(13):Block和typedef

        本文链接:https://www.haomeiwen.com/subject/dzxzhxtx.html