首页 > ios 初始化语法({})

ios 初始化语法({})

我在RESideMenu这个库中发现初始化一个属性是用如下代码:

    self.contentViewContainer = ({
        UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
        view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        view;
    });

请问这种({})是什么语法,很少见到用。


没有看清楚,确实只是一个表达式,一个语法拓展


这就是OC2.0以后的那些语法糖,和block有些本质上的区别,例如@1代替NSNumber, @[]代表数组,这是编译器升级带来的便利!

这种块结构会把最后一行代码的值返回并作为这个表达式的值,只是为了提高阅读性,建议多人协作开发时,商议好规范


这是语句内嵌表达式(statement-embedded expression),是 GCC 对 C 语言的扩展,并不是 Block。有兴趣可以去 Google。

【热门文章】
【热门文章】