OC 30 day
void (^myBlock1)() = ^void(){
NSLog(@"我愛你");
NSLog(@"我恨你");
}
```****
# 如果我們寫的代碼段沒有返回值,那麼代碼段的void可以省略。
```objectivec=
void (^myBlock1)() = ^(){
NSLog(@"我愛你");
NSLog(@"我恨你");
}
代碼段的反回值如果是void可以省略,聲明的代碼段不可以省略。
void (^myBlock1)() = ^{
NSLog(@"我愛你");
NSLog(@"我恨你");
}
再次強調,可以省略的只有代碼段
所以,當一個代碼段既沒有參數,有沒有反回值,就只寫^。
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變量以及代碼段,因為這樣可以提高代碼的閱讀性。