假设标头声明包含
@property(nonatomic, assign) DoublyLinkedList *doublyLinkedList;
之间有什么区别吗?
[[self doublyLinkedList] release];
[self setDoublyLinkedList:nil];
和
[doublyLinkedList release];
doublyLinkedList= nil
一个优先于另一个吗?为什么呢?
答案 0 :(得分:1)
没有区别。
第二个选项可能会稍快一些,因为它不使用getter / setter方法。
我们很清楚,你在分配时是否保留了doublelyLinkedList?因为否则你会过度释放。
除非你有充分的理由,否则我会跳过所有这些并使用retain而不是assign,并使用self.doublyLinkedList = nil来释放/清除它。
e.g。
定义
@property(nonatomic, retain) DoublyLinkedList *doublyLinkedList;
正在使用
self.doublyLinkedList = nil;
和dealloc
-(void)dealloc{self.doublyLinkedList=nil;[super dealloc];}