потратив несколько месяцев на то, чтобы освоить синтаксис и правила, я углубляюсь в правила управления памятью.Одна вещь, которую я не понимаю и вызывает у меня путаницу, это то, как человек создает объекты.
Основываясь на том, что указано в руководстве по управлению памятью Apple, следующий подход является допустимым:не вызывает утечек памяти.Причина в том, что он не использует alloc для создания массива и, следовательно, sprockets не является владельцем.Однако теперь мне интересно, что находится внутри arrayWithObjects.Потому что бывает, что в моих приложениях у меня часто есть фабрика для создания пользовательских объектов с использованием чего-то похожего на:
return [[MyObject alloc] initWithParameter:(id)params]; // possible leak
Если я хочу изменить статическим методом, например:
return [MyObject initWithParameter:(id)params];
чтоможет быть в initWithParameter для соблюдения правил памяти?А что если MyObject расширяет какой-то другой объект?Я также выясняю, что правила именования методов важны для правильного консультирования программиста, что это за правило?Также не могли бы вы указать веб-ссылку, где это объясняется (я пока не умею находить документы на веб-сайте Apple).
спасибо