iOS在Objective-C中构建和返回对象的这种方式的名称
我想知道这种编码风格叫什么,它是内联块吗?内联作用域?什么?当编译器遇到其中一个时会创建什么iOS在Objective-C中构建和返回对象的这种方式的名称,ios,objective-c,scope,block,Ios,Objective C,Scope,Block,我想知道这种编码风格叫什么,它是内联块吗?内联作用域?什么?当编译器遇到其中一个时会创建什么 - (UIView *)createMyView { return ({ UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 0)]; /* set some stuff up on the view; */ v
- (UIView *)createMyView {
return
({
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 0)];
/* set some stuff up on the view;
*/
view;
});
}
我这样问是因为我们在崩溃日志中收到了很多cxx_销毁调用,其中的行号远远大于文件的实际大小。我想知道这种编码方式是否会给它的构建方式增加一些奇怪的东西。这是一种“语句表达式”,是一种GCC特性(Clang也能理解),
见:
括号中的复合语句可以显示为
GNUC中的表达式。这允许您使用循环、开关和本地
表达式中的变量
表达式的值是复合语句中最后一个子表达式的值。检查此链接,它将详细解释