Я читал, что использовать self.ivar = (удобный метод) в методе init и объектах плохо, так как это мешает наследованию.
Однако, если вы знаете, что не собираетесь создавать подклассы своего объекта, можно ли использовать присвоение ключевого слова self?
i.e. self.iVar = [Object objectConvenienceMethod];
Причина, по которой я спрашиваю, заключается в следующем. Я создаю новый объект с его собственным методом инициализации и в этом методе выполняю различные начальные назначения. Поскольку я не использую ключевое слово self, я назначаю их непосредственно iVars и поэтому использую методы выделения, а не вспомогательные методы. Т.е.
iVar = [[Object alloc] init];
Или, если я использую удобный метод, я сохраняю его. Т.е.
iVar = [[Object convenienceMethod]retain]
Но ... когда я запускаю свою программу с включенным инструментом утечки памяти, все эти назначения идентифицируются как утечки памяти.
Если я могу использовать ключевое слово self плюс удобный метод вместо alloc-init, это поможет избежать проблемы.
Если я решу использовать подход alloc-init, где я должен выпустить iVars? Просто в освобождении?
Спасибо за вашу помощь :)
Майкл