object-c语法疑惑

请问addSubview这种写法是什么?是block吗?为什么又不加^block标识符呢?

[self addSubview:({
  UIView *view = ....;
  view;
 })];
 [UIView animateWithDuration:1.f animations:^{
        
 }];
阅读 1.9k
1 个回答

一个语法糖而已。

// 原始写法
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor redColor];
[self addSubview:view];

// 等同于
[self addSubview:({
    UIView *view = [[UIView alloc] init];  
    view.backgroundColor = [UIColor redColor];
    view;
});

其实没少写啥代码,就是变量作用域有区别而已。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题