主要說一下,OC中有一個(gè)寫法在swift中不能用,比如:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *l = [[UILabel alloc]init];
[self.view addSubview:l];
//區(qū)分變量的作用域
{
[self.view addSubview:l];
}
}
OC中這么寫不會(huì)出錯(cuò),然而在swift中這么寫就會(huì)報(bào)錯(cuò):

屏幕快照 2017-05-25 上午9.52.53.png
這個(gè)錯(cuò)誤就是原本
addsubview是沒有參數(shù)的,但是系統(tǒng)會(huì)把下面的{}當(dāng)做參數(shù),所以就會(huì)報(bào)錯(cuò)。如果在
addsubview后面加個(gè);,也會(huì)報(bào)錯(cuò):

屏幕快照 2017-05-25 上午9.57.04.png
提示這是一個(gè)沒有用的閉包,
{}是定義函數(shù)的,OC中{}是作用域,而swift中是定義函數(shù)的,所以這個(gè)就是一個(gè)沒有參數(shù)沒有返回值的函數(shù),然后沒有東西接它,所以報(bào)錯(cuò)。