(八)block

2017-06-30  本文已影响9人  叔叔不吃棒棒糖

前言

总是提不起学习的心哈哈,坚持吧。block之前学GCD的时候用到过,当时做了简单的了解,今天总结下简单的block知识吧。应该都是最基础的知识了。

一、block的概念

block:带自动变量(局部变量)的匿名函数。这个额,其实我做过一段时间的前端,感觉这个和js中的匿名函数有点像,有兴趣的可以找一下自执行匿名函数,闭包。js作为还算年轻的语言,杂糅了多种语言,有些用法反而显得简单明了。
直接上代码吧

    NSString * (^myBlock)(NSString *,NSString *) = ^(NSString *str1,NSString *str2){
        return [NSString stringWithFormat:@"%@ %@",str1,str2];
    };
    NSLog(@"%@",myBlock(@"my",@"block"));

上述代码是完整的block,一般很多东西都可以省略,从左到右,返回值类型、block名字、形参、实参、函数体。
打印如下

textview[6715:1866873] my block

二、typedef对block重命名

typedef:typedef是替换的作用,作用是为一种数据类型定义一个新名字。
例子:

    typedef int (^sum)(int);
    sum mySum = ^(int a){
        return a+1;
    };
    NSLog(@"%i",mySum(4));

block有太多东西了,我周末加加班吧

上一篇 下一篇

猜你喜欢

热点阅读