objective-c - ios 初始化语法({})
黄舟
黄舟 2017-04-17 17:52:48
[iOS讨论组]

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

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

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
ringa_lee

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

PHP中文网

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

高洛峰

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号