//block的定义
//1.无返回值, 无参数的block写法
//声明了一个 void(^)(void) 类型的 变量 block
// int a = 0;
void (^block)(void) = ^(void){
NSLog(@"block的值");
};
//black变量的使用
block();
//2.有返回值, 无参数的block写法
int (^block1)(void) = ^(void){
return 100;
};
block1();
//3.有参数, 无返回值
void (^block2)(int a, int b) = ^(int a, int b){
NSLog(@"%d", a + b);
};
block2(3, 4);
//4.有参数, 有返回值
NSString *(^block3)(NSString *str1, NSString *str2) = ^(NSString *str1, NSString *str2){
return [str1 stringByAppendingString:str2];
};
NSString *result = block3(@"111", @"222");
NSLog(@"%@", result);
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"aaa",@"bbb", @"ccc", @"ddd", nil];
[arr sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj2 compare:obj1];
}];
NSLog(@"%@", arr);