Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS在Objective-C中构建和返回对象的这种方式的名称_Ios_Objective C_Scope_Block - Fatal编程技术网

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中的表达式。这允许您使用循环、开关和本地 表达式中的变量


表达式的值是复合语句中最后一个子表达式的值。

检查此链接,它将详细解释