self.tableView.tableHeaderView = ({
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 184.0f)];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 40, 100, 100)];
imageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
imageView.image = [UIImage imageNamed:@"avatar.png"];
imageView.layer.masksToBounds = YES;
imageView.layer.cornerRadius = 50.0;
imageView.layer.borderColor = [UIColor whiteColor].CGColor;
imageView.layer.borderWidth = 3.0f;
imageView.layer.rasterizationScale = [UIScreen mainScreen].scale;
imageView.layer.shouldRasterize = YES;
imageView.clipsToBounds = YESS;
[view addSubview:imageView];
view;
});
這個(gè)問(wèn)題嚴(yán)格上講和Objective-C沒(méi)什么太大的關(guān)系,這個(gè)是GNU C的對(duì)C的擴(kuò)展語(yǔ)法 Xcode采用的Clang編譯,Clang作為GCC的替代品,和GCC一樣對(duì)于GNU C語(yǔ)法完全支持
你可能知道if(condition)后面只能根一條語(yǔ)句,多條語(yǔ)句必須用{}闊起來(lái),這個(gè)語(yǔ)法擴(kuò)展即將一條(多條要用到{})語(yǔ)句外面加一個(gè)括號(hào)(), 這樣的話你就可以在表達(dá)式中應(yīng)用循環(huán)、判斷甚至本地變量等。表達(dá)式()最后一行應(yīng)該一個(gè)能夠計(jì)算結(jié)果的子表達(dá)式加上一個(gè)分號(hào)(;), 這個(gè)子表達(dá)式作為整個(gè)結(jié)構(gòu)的返回結(jié)果
這個(gè)擴(kuò)展在代碼中最常見(jiàn)的用處在于宏定義中