12
我注意到在實現dealloc時,在書籍和網頁上查看各種代碼時有點困惑。我的問題是當使用@property我應該使用以下哪一個。直到現在我一直在使用VERSION_001。dealloc,使用release還是設置爲nil屬性?
@property(nonatomic, retain) NSString *name;
@property(nonatomic, retain) NSString *type;
@property(nonatomic, retain) NSString *payload;
@property(nonatomic, retain) NSString *orbit;
VERSION 001
- (void)dealloc {
[name release];
[type release];
[payload release];
[orbit release];
[super dealloc];
}
VERSION 002
- (void)dealloc {
[self setName:nil];
[self setType:nil];
[self setPayload:nil];
[self setOrbit:nil];
[super dealloc];
}
謝謝,正是我之後,非常感謝。 – fuzzygoat 2010-11-08 13:16:13
沒問題,任何時候,只要不要忘記接受答案:) – 2010-11-08 13:16:43
版本1與版本2相比的一大優點是,如果有一天您修改其中一個屬性的setter以執行一些不重要的工作,您不會在版本1中產生性能或潛在的不正確行爲。版本2很容易導致您在代碼中引入錯誤,而無法在一天之內實現。 – Ryan 2010-11-08 19:28:10