的實際區別,我已經發現的是,調試器不會出現,顯示性能,只是實例變量的值。
因此,您的第一個示例(假設您使用@synthesize
指令創建您的getter/setter)會自動創建ivar,但它不會具有可在調試期間輕鬆檢索的值。您最終不得不發送大量的NSLog
消息,而不是在單步執行代碼時查看這些值。作爲一個旁白,這似乎與這個主題有關,我通常在iv代碼前添加我的ivars並在XCode首選項中更改我的顏色設置,這樣我就永遠不會確定我是在訪問一個屬性還是一個ivar 。
例
@interface MyClass : NSObject {
NSString *ivName;
NSString *ivTitle;
}
@property (nonatomic, copy) NSString *Name;
@property (nonatomic, copy) NSString *Title;
@end
現在,這則需要一個小竅門(綁兩人在一起)合成的屬性,這一點我下面展示的時候:
@implementation MyClass
@synthesize Name = ivName;
@synthesize Title = ivTitle;
這樣一來,它的一直很容易讓我一眼就知道到底發生了什麼。是的,上下文還可以告訴你是否訪問ivar/property,但爲什麼不能更容易?
對不起,我試過了,無法把代碼放在正確的格式。我試圖把它放在{}中仍然沒有工作。我不知道如何。這方面的任何提示? – Rajashekar
您不必在{}中放置代碼。而是粘貼代碼,選擇它並單擊{},這是一個位於文本字段上方的按鈕。 – Codo
@codo謝謝,現在我明白了。對不起,我正在嘗試像cocos2d論壇那樣做。 – Rajashekar