block 简单使用
2012-10-12 11:24
330 查看
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);
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简介与简单使用
- ios之block代码块的简单使用 函数回调
- IOS Block代码块的简单使用
- iOS 简单block的使用
- 01-Block的简单使用
- iOS Block的简单使用以及__block 和static修饰变量
- objc_setAssociatedObject与Block的简单使用
- iOS block传值的简单使用
- block的简单使用
- iOS中block的简单使用及注意点
- block的简单使用
- IOS中的__block关键字简单使用
- 简单快速的理解block的循环引用及__weak的使用条件
- block的简单使用
- block的简单使用
- block 简单使用
- 黑马程序员--Objective-C之--block的使用以及协议的简单介绍
- IOS-简单易懂的Block回调使用
- iOS - Block的简单使用
- 【ios】使用Block对POST异步操作的简单封装