標籤:
1:@property @synthesize 屬性(類似java裡的get set)
上面那個類原先的實現是這樣:#import @interface Photo : NSObject { NSString* caption; NSString* photographer; } - (NSString*) caption; - (NSString*) photographer; - (void) setCaption: (NSString*)input; - (void) setPhotographer: (NSString*)input; @end 假如用屬性來實現就是這樣:#import @interface Photo : NSObject { NSString* caption; NSString* photographer; } @property (retain) NSString* caption; @property (retain) NSString* photographer; @end @property是Objective-C來聲明屬性的編譯指令。括弧裡面的"retain"指明了setter需要retain輸入的對象。這行其他的部分指定了屬性的類型以及名字。下面讓我們來看看這個類的實現:#import "Photo.h" @implementation Photo @synthesize caption; @synthesize photographer; - (void) dealloc { [caption release]; [photographer release]; [super dealloc]; } @end @synthesize指令自動的產生了我們的setters和getters。所以我們只需要實作類別的dealloc方法。Accessors只有當他們原先沒有的時候,才會被產生。所以可以放心大膽的去用@synthesize來指定屬性。而且可以隨意實現你自己的getter和setter。編譯器會自己去找哪個方法沒有。View Code
ios 基礎學習二