tags: OC 30 day
void (^myBlock1)() = ^void(){NSLog(@"我爱你");NSLog(@"我恨你");}```****# 如果我们写的代码段没有返回值,那么代码段的void可以省略。```objectivec=void (^myBlock1)() = ^(){NSLog(@"我爱你");NSLog(@"我恨你");}
代码段的反回值如果是void可以省略,声明的代码段不可以省略。
如果我们写的代码段没有参数,那么代码段的小括弧可以省略。
void (^myBlock1)() = ^{NSLog(@"我爱你");NSLog(@"我恨你");}
再次强调,可以省略的只有代码段
所以,当一个代码段既没有参数,有没有反回值,就只写^。
声明block变量的时候,如果有指定参数,可以只写参数的类型而不写参数的名称。
int (^myBlock1)(int num1,int num2) = ^int(int num1,int num2){NSLog(@"我爱你");NSLog(@"我恨你");}
换成
int (^myBlock1)(int,int) = ^int(int num1,int num2){NSLog(@"我爱你");NSLog(@"我恨你");}
注意:这个地方只有声明block变量的时候,代码段的类型与名称都要写。
无论代码段是否有返回值,在写代码段的时候,可以不写反回值类型。
如果在写带马段的时后,省略了返回值,这个时候系统会自动确定返回值类型。
如果代码段中没有任何数据,那么他会认为这个代码段是没有返回值的。
如果代码段中没有返回数据,返回数据是什么类型,他就会认为这个代码段是什么类型。
int (^myBlock1)(int,int) = ^int(int num1,int num2){int num3 = num1 + num2;}
建议仍然按照最标準的写法来写block变量以及代码段
建议仍然按照最标準的写法来写block变量以及代码段,因为这样可以提高代码的阅读性。