Pas du tout certain de savoir ce que ce code est supposé accomplir. Cela semble briser toutes les conventions sur les méthodes d'initialisation. Quel est le point de renvoyer un pointeur vide d'une méthode d'initialisation? Le point entier d'une méthode d'initialisation est de retourner un objet. Où dans les exemples de code d'Apple avez-vous vu cela? Cela dit, je ne vois pas pourquoi cela fuirait. Comme il ne renvoie pas d'objet, il n'y a rien à divulguer à l'extérieur de la méthode. Il peut y avoir quelque chose à l'intérieur qui fuit.
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.
Oui, vous avez besoin de revoir cela. À l'heure actuelle, cette méthode est juste une catastrophe en attente de se produire. Si rien d'autre, tout le monde regarde ce code sera complètement confus au sujet de ce que vous faites.
Si vous n'avez pas besoin de conserver l'objet créé, déplacez son allocation et nettoyez entièrement dans une méthode. Changez le préfixe du nom de la méthode de "initialize" à quelque chose comme "setup", "configure", "acquérir" etc, donc le nom n'implique pas qu'il crée et renvoie et object.
Si vous avez besoin d'une instance one shot d'une classe particulière, utilisez une méthode de classe comme Michael Aaron Safyan suggérée (encore sans initialize dans le nom.) La méthode de classe doit initialiser en interne une instance, effectuer les opérations données à n'importe où, puis libérer l'instance. De cette façon, vous n'aurez pas à vous soucier des fuites et tous ceux qui liront votre code (y compris vous-même des mois plus tard) comprendront immédiatement ce que fait le code.
Je n'utiliserais pas de code avec une méthode commençant par '-initializeSomething': quiconque ne connait pas assez Objective-C pour nommer sa méthode' -initSomething' n'évitera probablement pas correctement les fuites: alors que peut sembler sévère, une simple erreur comme celle-ci pourrait vraiment montrer une méconnaissance de l'ensemble d'outils. –
:/Bien que vous ayez un point n'est pas un choix de nit? Il pourrait avoir une haine passionnée pour raccourcir les mots. Le reste de son code ne fuit pas non plus – Rudiger
Rudiger: Suivre une convention de nommage correcte est/toujours/une bonne idée. –