我按照教程找到这段代码:
self.imageView.frame = (CGRect){.origin = CGPointMake(0.0f, 0.0f), .size = image.size};
它非常清楚它做了什么,但我不理解这行代码的语法。我第一次看到这样的事情:.size = image.size
。在点语法中,我希望在点前面看到一些内容,例如self.view
,但.size
的含义是什么?
第二个问题是 - 为什么有圆括号,后面是大括号?我之前从未见过像(){};
那样的结构。
我的问题可能听起来很愚蠢,但现在我有点困惑,有人可以提供解释吗?谢谢。
答案 0 :(得分:5)
这是C结构的Designated Initializer syntax。括号()
用于将结构转换为CGRect
。正如Martin R指出的那样,除非你使用复合文字语法,否则不需要强制转换,你没有为参数命名。