一般的には、次のように使用してください。
a.b.c
しかし、それに関係する構造があれば、それはうまくいかないかもしれません。次のクラス宣言を考えてみましょう。
@interface Circle : NSObject
@property (assign) NSPoint centre;
@end
この場合、 center
プロパティは、 x
とという2つのメンバを宣言する構造体(クラスではありません)の NSPoint
> 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;