OC

Knowledge OS
主帖 12 条回复

iOS 中关于代码嵌套的问题

shifeng310 shifeng310 · 2014年02月21日 · 阅读 4 · 无人欣赏。

在网上下了一段源码,其中有一段语法看不懂,关于代码嵌套的,

[scrollView addSubview:({

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, CHTwitterCoverViewHeight, self.view.bounds.size.width - 40, 358 - CHTwitterCoverViewHeight)];
    label.numberOfLines = 0;
    label.font = [UIFont systemFontOfSize:22];
    label.text = @"hello world";
    label;
})];

这样就在scrollView 中添加了个view,最后一行代码看不懂,就一个“label”,不是“return label”吗? 个人理解是新开辟了一块内存,创建了一个label 那 指针呢,怎么返回给scrollView的? 各位老师请指点

回复

12 条
#1
指针为空
2014年02月21日

啊,最讨厌这样写代码的了。

我团队要是谁这么写的话,我一定会骂回去重写的

#3
isaced
2014年02月21日

这段代码前两天我还刚看过,当时猜想就和C语言中的括号表达式取最后一个","的值一个道理吧

比如这句: NSLog(@"%@",(@"a",@"b",@"c")); 虽然报了警告,但还是输出了c

#4
isaced
2014年02月21日

事实跟我想的应该没错,再看个例子:

NSString *s = ({
    @"a";
    @"b";
    @"c";
});
NSLog(@"%@",s);

输出:c

#7
指针为空
2014年02月21日

4楼 @isaced 这代码其实就是,s先被赋值为a,然后被赋值为b,然后被赋值为c。。。。

#11
isaced
2014年02月21日

5楼 @shifeng310 嗯,我昨天下下来看的这个demo,一下想不起名字了。我也不知道这语法叫什么名字,只记得以前在课堂上提到过一点,搜了下,语句内嵌表达式(statement-embedded expression)?

本帖有12个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。
登录 或者 注册
顶楼 / 底楼 / 首页