【发布时间】:2012-02-21 05:02:58
【问题描述】:
我正在阅读一本关于 iOS 的书(它称为 Programming iOS 4,作者是 Matt Neuburg),在他解释属性的段落中,他说了这些话:
Objective-C 对属性使用点表示法,而 C 对结构使用点表示法;这些可以链接。因此,例如,UIView 的 frame 是一个属性,其值为一个结构(一个 CGRect);因此,您可以说 myView.frame.size.height,其中 frame 是返回结构的属性,size 是该结构的组件,height 是该结构的组件。但是 struct 不是指针,因此您不能(例如)直接通过以 UIView 开头的链来设置框架的高度,如下所示:
myView.frame.size.height = 36.0; // compile error
相反,如果您想更改结构属性的组件,您可以 必须将属性值提取到结构变量中,更改 struct 变量的值,并从 结构变量:
CGRect f = myView.frame;
f.size.height = 0;
myView.frame = f;
我不是很明白,为什么我不能使用下面的行?
myView.frame.size.height = 36.0;
【问题讨论】:
-
看到这个answer。
标签: objective-c ios