OC的小括號內(nèi)聯(lián)復(fù)合表達式
A compound statement enclosed in parentheses
RETURN_VALUE_RECEIVER = {(
// Do whatever you want
RETURN_VALUE; // 返回值
)};
這樣寫比較少見活喊,
?? 例子1
[self.view addSubview:({
_addPhotoButton = [UIButton buttonWithType:UIButtonTypeContactAdd];
_addPhotoButton.frame = CGRectMake(0, 25, 44, 44);
[_addPhotoButton addTarget:self action:@selector(addPhotoButtonClick) forControlEvents:UIControlEventTouchUpInside];
_addPhotoButton;
})];
```
?? 例子2
[self.view addSubview:({
[[UIView alloc ] init ];
}) ];
#優(yōu)點:
有點像block和內(nèi)聯(lián)函數(shù)的結(jié)合體枉疼,它最大的意義在于將代碼整理分塊,將同一個邏輯層級的代碼包在一起魄咕;
同時對于一個無需復(fù)用小段邏輯衩椒,也免去了重量級的調(diào)用函數(shù)。這樣使得代碼量增大時層次仍然能比較明確哮兰。
此外毛萌,返回值和代碼塊結(jié)束點必須在結(jié)尾。
## 引用文檔:
[objc非主流代碼技巧](http://blog.sunnyxx.com/2014/08/02/objc-weird-code/)