2011-09-30 16 views
2

假設報頭聲明包含上的屬性和訪問器

@property(nonatomic, assign) DoublyLinkedList *doublyLinkedList; 

是有一個優於另一個

[[self doublyLinkedList] release]; 
[self setDoublyLinkedList:nil]; 

[doublyLinkedList release]; 
doublyLinkedList= nil 

之間的任何差異?爲什麼?

回答

1

沒有區別。

第二個選項可能會稍微快一點,因爲它不使用getter/setter方法。

就這樣我們很清楚,你分配它時保留雙向鏈表嗎?否則你會過度釋放。

除非你有一個很好的理由,否則我會跳過所有這些,並使用retain而不是assign,並且self.doublyLinkedList = nil來釋放/清除它。

例如

定義

@property(nonatomic, retain) DoublyLinkedList *doublyLinkedList; 

使用

self.doublyLinkedList = nil; 

和dealloc的

-(void)dealloc{self.doublyLinkedList=nil;[super dealloc];}