运行结果是:print:hello world!
4.2代码用在字符串数组排序
复制代码
NSArray *stringArray = [NSArray arrayWithObjects:@"abc 1", @"abc 21", @"abc 12",@"abc 13",@"abc 05",nil];
NSComparator sortBlock = ^(id string1, id string2)
{
return [string1 compare:string2];
};
NSArray *sortArray = [stringArray sortedArrayUsingComparator:sortBlock];
NSLog(@"sortArray:%@", sortArray);
运行结果:
sortArray:(
"abc 05",
"abc 1",
"abc 12",
"abc 13",
"abc 21"
)
4.3代码块的递归调用
代码块想要递归调用,代码块变量必须是全局变量或者是静态变量,这样在程序启动的时候代码块变量就初始化了,可以递归调用
static void (^ const blocks)(int) = ^(int i)
{
if (i > 0) {
NSLog(@"num:%d", i);
blocks(i - 1);
}
};
blocks(3);
运行打印结果:
num:3
num:2
num:1
4.4在代码块中使用局部变量和全局变量
在代码块中可以使用和改变全局变量










