2011-10-28 12 views
2

的可可點語法是否確定要使用的語法如下:點語法

Object.parent.property 

或者我應該把它限制在一個點,只有一個水平?

+2

查找「得墨忒耳定律」:http://en.wikipedia.org/wiki/Law_of_Demeter –

+0

維基百科頁面是非常有益的!謝謝。 – user1017624

回答

4

一般情況下,它是好的使用方法:

a.b.c 

但是,如果涉及那麼它可能無法正常工作結構。考慮下面的類聲明:

@interface Circle : NSObject 
@property (assign) NSPoint centre; 
@end 

在這種情況下,centre屬性是NSPoint類型,即聲明瞭兩個成員,xy的結構(不是類!)。讀x協調工作:

CGFloat x = circle.centre.x; 

,等同於:

CGFloat x = [circle center].x; 

但寫x座標不會:

circle.centre.x = 50; 

因爲賦值的左側部分,稱爲左值,不可轉讓。該任務嘗試更改返回值的成員變量,即由[circle centre]返回的結構。

你必須,而不是寫:

NSPoint centre = circle.centre; 
centre.x = 50; 
circle.centre = centre; 
3

是的,這是完全正常和普遍使用的語法類似。