Я запустил анализатор, и я не уверен, как работает пара функций управления памятью. У меня есть свойство (у него нет пользовательских сеттеров или геттеров):
@property (nonatomic, retain) NSMutableArray *myArray;
Тогда я попытаюсь использовать его позже:
if ([[MyClass sharedDelegate].myArray containsObject:"test"])
В нем говорится, что «свойство возвращает объект Objective-C с числом сохранений +1»
Где sharedDelegate
определяется как:
+(MyApp*)sharedDelegate
{
return (MyApp*)[[UIApplication sharedApplication] delegate];
}
Я не понимаю этого, так как не вижу, где находится удержание? Я думал, что использование свойства таким способом - это использование метода get, который просто возвращает значение myArray
. Так где же утечка памяти?
Затем указывает на
UIGraphicsBeginImagecontextWithOptions(container.bounds.size, YES, 1.0);
Объект просочился: на выделенный объект не ссылаются позже в этом пути выполнения и имеет счет сохранения + 1
Я тоже не понимаю этого, или как это связано с первой утечкой памяти. Они кажутся не связанными.