По моему опыту self.name = nil
не делает то же самое, что [name release]; name = nil
. Я предполагаю, что в синтезированном сеттере есть некоторый код, который избегает nil
присваиваний, но YMMV. Свойства, на которых я наблюдал это, также были указаны (nonatomic, retain)
, поэтому вы также можете увидеть некоторые различия там.
Более того, нотация self.
отправляет уведомления KVO, поэтому в этом случае также необходимо учитывать снижение производительности.