(八)block

前言

总是提不起学习的心哈哈,坚持吧。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有太多东西了,我周末加加班吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 《Objective-C高级编程》这本书就讲了三个东西:自动引用计数、block、GCD,偏向于从原理上对这些内容...
    WeiHing阅读 13,327评论 10 69
  • 前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这...
    小人不才阅读 9,143评论 0 23
  • Block基础回顾 1.什么是Block? 带有局部变量的匿名函数(名字不重要,知道怎么用就行),差不多就与C语言...
    Bugfix阅读 11,723评论 5 61
  • 2.1 Blcoks概要 2.1.1 什么是Blocks Blocks是C语言的扩充功能——“带有自动变量(即局部...
    SkyMing一C阅读 6,970评论 6 18
  • block.png iOS代码块Block 概述 代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实...
    全栈农民工阅读 3,669评论 0 1