Я пытаюсь понять некоторые проблемы управления памятью. И нашел этот вопрос , который частично отвечает на мой вопрос.
Например, в MyObject у меня есть переменная экземпляра, объявленная как свойство и правильно синтезированная в файле реализации:
@interface MyObject : NSObject
...
ObjectA objA;
...
@property (nonatomic, retain) ObjectA *objA;
@end
В какой-то произвольный момент я создаю экземпляр objA. Я знаю, self.objA = _objA;
вызывает синтезированный метод доступа. Что, по логике, означает, что self.objA = [[ObjectA alloc] init];
приведет к утечке памяти, поскольку счет сохранения будет на один больше, чем предполагалось (я знаю, что проверка счетчика хранения напрямую не является точным способом проверки того, как долго объект будет в памяти ).
objA = [[ObjectA alloc] init;
также вызывает сеттер и может привести к утечке памяти?