ano*_*234 10 syntax objective-c
我正在仔细阅读第三方RESideMenu框架的代码,并注意到一些奇怪的语法似乎工作正常.这是令人困惑的一点:
self.tableView = ({
UITableView *tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain];
tableView.autoresizingMask = mask;
tableView.delegate = self;
tableView.dataSource = self;
tableView.opaque = NO;
tableView.backgroundColor = [UIColor clearColor];
tableView.backgroundView = nil;
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
tableView.bounces = NO;
tableView.scrollsToTop = NO;
tableView;
});
Run Code Online (Sandbox Code Playgroud)
这种语法如何工作?我怀疑它与C级块确定有关,但我以前从未见过这个.我也认为它可能是Objc-2.0文字的新功能,但我不认为这是真的.
所以我想我的问题是这是如何工作/使这项工作的原因?
Gav*_*vin 10
魔术背后是GCC C扩展,如果括在括号和圆括号内,会导致代码块返回一个值.
这不仅将配置详细信息分离为初始化,而且附加范围允许在后续初始化中重用通用变量名称,如框架,按钮和视图.没有更多loginButtonFrame = .../signupButtonFrame = ...!
| 归档时间: |
|
| 查看次数: |
924 次 |
| 最近记录: |