block的类型:对象

  • 官方文档描述如下 “Blocks are Objective-C objects, which means they can be added to collections like NSArray or NSDictionary”

block的作用:

用来保存某一段代码, 并不是马上执行,需要手动调用

block的定义

返回值类型 (^block变量名)(形参列表) = ^返回值类型(形参列表) {

};

1.不带参数和返回值
void (^block名)() = ^{代码块;}

例如:
void (^myBlock)() = ^{ NSLog(@"YMF"); };
2.带参数和返回值
返回类型 (^block名称)(参数列表)
= ^ (参数列表) { // 代码实现; } 例如:
int (^myBlock)(int, int) = ^(int num1, int num2){ return num1 + num2; };
3.block的其他定义方式

定义一: 等号右边: ^返回值(){};

void(^block1)() = ^void(){

    };

定义二: 定义block,不管有没有返回值都可以省略,如果有返回值,在代码块中一定要记得return。

    int(^block2)() = ^(){

        return 1;
};

非常规定义,声明时不声明参数,定义时传入参数

int (^block)() = ^(int num1, int num2) {

        int num = num1 +num2;
NSLog(@"block --%d",num);
return num;
};
4.block的调用
block变量名(实参);

block代码的快捷键:inlineBlock

最新文章

  1. CSS常见技巧
  2. 从零开始编写自己的C#框架(16)——Web层后端父类
  3. C#与C/C++的交互zz
  4. URL编码表,URL编码大全
  5. 《JavaScript高级程序设计》学习笔记
  6. ABBYY FineReader 12双十一特价来袭
  7. 关于Windows Azure 地缘组(Affinity Groups)
  8. ASP.NET Web API标准的“管道式”设计
  9. (从终端看linux-2)浅析terminal创建时ptmx和pts关系
  10. RHEL/CentOS 6.x 系统服务详解
  11. C语言数据结构----双向链表
  12. 五分钟秒懂Java日志组件
  13. springmvc 前端 发ajax请求的几种方式
  14. scrapy 博客爬取
  15. NOIP 2012
  16. struts2 上传与下载
  17. Virtual DOM 系列二:核心API
  18. 将 Desktop Central 与帮助台和 OS Deployer 集成
  19. js之Ajax下载文件
  20. MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化

热门文章

  1. poj1328贪心中的区间问题
  2. jQuery扩展两类函数(对象调用,静态调用)
  3. Windows录音API学习笔记(转)
  4. C# 计算文件的HASH
  5. Java的进制转换操作(十进制、十六进制、二进制)
  6. 好的 vim编辑博客
  7. c#和java中的方法覆盖——virtual、override、new
  8. Nginx中的信号量(信号控制)
  9. Selenium2(java)TestNG的使用 七
  10. [bzoj2120][数颜色] (暴力 or 分块)