iT邦幫忙

0

iOS APP 開發 OC 第十一天,block 簡寫

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變量以及代碼段,因為這樣可以提高代碼的閱讀性。


尚未有邦友留言

立即登入留言