代码块的使用

来源:互联网 发布:sqlserver 数据库实体 编辑:程序博客网 时间:2024/06/05 08:19
代码块的语法格式:
     
     返回值类型(^代码块名)(参数列表) = ^返回值类型(参数列表){表达式;};
     eg: void(^myBlock)() = ^{printf(“hello,block\n”);};

说明:1.返回值类型和参数列表都可以有条件省略
           2.省略返回值类型时,若表达式中有return 语句就使用该返回值的类型,若没有,则为void
          3.省略返回值类型时,若表达式中有多个return语句,则所有return语句返回值类型必须相同
          4.如果不适合参数,则参数列表也可以省略

直接使用

void (^myBlock)() = ^{printf("Hello, Block\n");};
myBlock();
代码块内联
NSArray *array = @[@"One", @"Two", @"Three", @"Four"];
NSLog(@"Sorted array: %@", sortedArray);
NSLog(@"Unsorted array: %@", array);
NSArray *sortedArray = [array
sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2];

}]; 

代码块的变量

     1.全局变量和静态变量在代码块内部可以正常使用(可以修改其值) 
     2.局部变量在代码块内部无法修改其值,原因是代码块的局部变量在编译阶段被看做为常 量
     3.如果需要在代码块中修改局部变量,需要在局部变量前面加
__block修饰符 

0 0
原创粉丝点击