Совершенно не уверен, что этот код должен выполнить. Кажется, что он нарушает каждое соглашение о методах инициализации. Какой смысл возвращать указатель void из метода инициализации? Вся цель метода инициализации - вернуть объект. Где вы видели это в примерах кода Apple?
Сказав это, я не понимаю, почему это просочится. Поскольку он не возвращает объект, нет ничего, чтобы утечка внешнего метода. Возможно, что-то внутренне течет.
Edit:
It basically does an NSURLConnection. Because we are submitting a lot of forms with a lot of different values we put it in an external class. All the delegate methods like didFailWithError: are in NSURLRequest and connectionDidFinishLoading just passes the data to its delegate. So it doesn't really need to return anything as it is done through a delegate method.
Да, вам нужно переделать это. В настоящее время этот метод является просто катастрофой, ожидающей своего появления. Если ничего другого, все остальные, смотрящие на этот код, будут совершенно смущены тем, что вы делаете.
Если у вас нет необходимости сохранять созданный объект, затем перемещайте его выделение и полностью очищайте внутри метода. Измените префикс имени метода с «initialize» на что-то вроде «setup», «configure», «purchase» и т. Д., Чтобы имя не подразумевало, что оно создает и возвращает и объект.
Если вам нужен экземпляр с одним выстрелом для определенного класса, используйте метод класса, например, предложенный Майклом Аароном Сафяном (опять же без инициализации имени). Метод класса должен инициализировать экземпляр внутри, выполнить необходимые операции, вернуть данные в любом месте, а затем исключить экземпляр.
Таким образом, вам не придется беспокоиться о утечках, и все, кто может читать ваш код (включая вас, месяцы в пути), сразу поймут, что делает код.
Я бы/не использовал/не использовал какой-либо код с методом, начинающимся с '-initializeSomething': любой, кто не знает достаточно Objective-C, чтобы назвать свой метод' -initSomething', скорее всего, не будет правильно избегать утечек: в то время как может звучать жестко, одна простая ошибка, подобная этой, может действительно показать незнакомость с набором инструментов. –
:/Хотя у вас есть точка не в том, что выбор нит? У него может быть страстная ненависть к сокращению слов. Остальная часть его кода не течет либо – Rudiger
Rudiger: Следующее правильное соглашение об именах - это/всегда/хорошая идея. –