По свойствам и принадлежностям - PullRequest
2 голосов
/ 01 октября 2011

Предполагая, что объявление заголовка содержит

@property(nonatomic, assign) DoublyLinkedList *doublyLinkedList;

Есть ли разница между

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

и

[doublyLinkedList release];
doublyLinkedList= nil

Является ли один предпочтительным по сравнению с другим?Почему?

1 Ответ

1 голос
/ 01 октября 2011

Разницы нет.

Второй вариант может быть немного быстрее, потому что он не использует методы получения / установки.

Просто, чтобы мы поняли,вы сохраняете doublelyLinkedList, когда назначаете его?Потому что в противном случае вы перепроизводите.

И если у вас нет веских причин, я пропустил бы все это и использовал бы retain вместо assign, а self.doublyLinkedList = nil, чтобы выпустить / очистить его.

например,

определение

@property(nonatomic, retain) DoublyLinkedList *doublyLinkedList;

используется

self.doublyLinkedList = nil;

и на dealloc

-(void)dealloc{self.doublyLinkedList=nil;[super dealloc];}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...