Swift之花括號

weixin_34138377發表於2017-05-25

主要說一下,OC中有一個寫法在swift中不能用,比如:

- (void)viewDidLoad {
[super viewDidLoad];
UILabel *l = [[UILabel alloc]init];

[self.view addSubview:l];
//區分變數的作用域
{
    [self.view addSubview:l];
}
}

OC中這麼寫不會出錯,然而在swift中這麼寫就會報錯:

2440882-f2d12ef5593359f1.png
螢幕快照 2017-05-25 上午9.52.53.png

這個錯誤就是原本addsubview是沒有引數的,但是系統會把下面的{}當做引數,所以就會報錯。
如果在addsubview後面加個;,也會報錯:

2440882-94b6e8353c0b7388.png
螢幕快照 2017-05-25 上午9.57.04.png

提示這是一個沒有用的閉包,{}是定義函式的,OC中{}是作用域,而swift中是定義函式的,所以這個就是一個沒有引數沒有返回值的函式,然後沒有東西接它,所以報錯。

相關文章