是否有人可以帮我写以下,不使用点符号:如何在没有点符号写这
self.bounds.size.width
我已经试过[[[self bounds] size] width]
,但这会导致错误。有任何想法吗?
是否有人可以帮我写以下,不使用点符号:如何在没有点符号写这
self.bounds.size.width
我已经试过[[[self bounds] size] width]
,但这会导致错误。有任何想法吗?
对于点语法的歧义性,您已经有所赘述。
你想:
[self bounds].size.width
-bounds
返回NSRect
的C结构。因此,您使用传统的点来访问其中的项目。
非常好 - 非常感谢。我试图避免点符号很长一段时间,而不知道为什么。这已经阐明了它提出的问题。谢谢 – Jack 2010-10-08 20:33:04
为了避免混合表示法,我可能更喜欢使用一个本地临时C结构变量:
CGRect myBoundsRect = [ self bounds ];
foo = myBoundsRect.size.width;
这样对象消息和C结构构件之间的差存取明确分离。
您是设置还是获取?你为什么不想用点符号? CGRect和CGSize一样是一个数据结构。 – Ben 2010-10-08 20:28:12
越来越多,我没有理由不使用点符号,但我没有在我的项目中的任何其他地方使用它 - 会很好地保持它的方式 – Jack 2010-10-08 20:30:11
符号看起来像访问结构的成员,所以我不喜欢并避免在我的项目中;一个是我讨厌C++语法的原因 – Ariel 2010-10-08 22:42:21