block 简单使用
来源:互联网 发布:2017淘宝防举报 编辑:程序博客网 时间:2024/05/20 21:22
int minus = 7;
int(^myBlock)(int) = ^(int num ){
int i = num *minus;
NSLog(@"---%d",i);
return i;
};
int t= myBlock(10);
NSLog(@"-t==%d",t);
1.int为返回类型
2. myBlock 为block名字
3。后面的int 为传入参数类型
4。int num 传入参数
在 block里面使用变量遵循以下规则:
全局变量可访问,包括在相同作用域范围内的静态变量。
传递给block的参数可访问(和函数的参数一样)。
程序里面属于同一作用域范围的堆(非静态的)变量作为const变量(即只读)。
它们的值在程序里面的 block表达式内使用。在嵌套block里面,该值在最近的
封闭范围内被捕获。
属于同一作用域范围内并被__block存储修饰符标识的变量作为引用传递因此是
可变的。
属于同一作用域范围内block的变量,就和函数的局部变量操作一样。
每次调用 block都提供了变量的一个拷贝。这些变量可以作为const来使用,或在block封闭范围内作为引用变量。
数组
void (^blocks[])(void) ={ ^(void){puts("hello");} ,
^(void){puts("hell1111");}};
blocks[1](),blocks[0]();
__block
static int s = 10;
__block int local =200;
void(^p)(void) = ^(void) {
printf("%dn",local +global);
global ++;
s++;
local -- ;
};
p();
printf("after local %d, global %d , s %d", local, global,s);
递归
void (^p)(int) =0;
static void (^ const blocks)(int) = ^(int i ){
if (i>0) {
printf("hello\n");
blocks(i-1);
}
};
p= blocks;
p(3);
- block 简单使用
- Block简单使用
- block的简单使用
- block 简单使用
- block 简单使用
- Block简单使用
- block的简单使用
- oc block简单使用
- iOS block简单使用
- iOS block简单使用
- block的简单使用
- block简单使用
- Block的简单使用
- BLOck的简单使用
- IOS block简单使用
- 简单的block使用
- OC block的简单使用
- OC-简单的使用BLOCK
- Silverlight作品:彩色卡片导航
- Java 信号量 Semaphore 介绍
- Linux 下的线程读写锁
- 第三章 流程控制
- JavaEE项目JDBC连接MySql数据库提示ClassNotFoundException的解决方案
- block 简单使用
- 网络基础之网桥和交换机的工作原理及区别
- 程序员老鸟写sql语句的经验之谈
- IOS设计模式之一:单例模式
- IOS设计模式之二:Delegate模式
- html标签select
- ios文件的操作
- IOS设计模式之三:MVC模式
- uboot Makefile源码分析