BinBear/breadtrip-ReactiveCocoa-MVVM-

请教楼主

Closed this issue · 2 comments

楼主,你好!请教一下:
// 懒加载
#define HT_LAZY(object, assignment) (object = object ?: assignment)

  • (UIImageView *)backgroundImageView
    {
    return HT_LAZY(_backgroundImageView, ({

      UIImageView *view = [UIImageView new];
      [self.contentView addSubview:view];
      view;
    

    }));
    }

这个object = object ?: assignment 是三目运算符吗?前面又不像是条件表达式,还有view;是啥意思?能帮忙解释一下吗?非常感谢!

@lvxiangan object = object ?: assignment这个就是三目,只不过是三目的两元使用,等价于object = object ? object : assignment。至于{

UIImageView *view = [UIImageView new];
[self.contentView addSubview:view];
view;
}是一个内联复合表达式,是gcc对c的扩展,被clang继承。
RETURN_VALUE_RECEIVER = {(
// 其他操作
RETURN_VALUE; // 返回值
)};

感谢及时回复!楼主威武!