可以使用这样的语法吗:
Object.parent.property
或者我应该将其限制为仅一个点和一个级别?
最佳答案
一般情况下,使用:
a.b.c
但是,如果涉及结构,那么它可能不起作用。考虑以下类声明:
@interface Circle : NSObject
@property (assign) NSPoint centre;
@end
在本例中,centre
属性的类型为 NSPoint
,这是一个声明两个成员 x
的结构(不是类!)和y
。读取 x
坐标有效:
CGFloat x = circle.centre.x;
并且相当于:
CGFloat x = [circle center].x;
但是写入x
坐标却不会:
circle.centre.x = 50;
因为赋值的左侧部分(称为左值)不可赋值。该赋值尝试更改返回值的成员变量,即[circle center]
返回的结构。
你必须这样写:
NSPoint centre = circle.centre;
centre.x = 50;
circle.centre = centre;
关于objective-c - cocoa 点语法之点语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7924517/