2011-12-19 1 views

Répondre

2

Vous avez déjà fait remarquer la différence

Pour les codes iOS, il est préférable d'utiliser l'utilisation Alloc/init plutôt que la commodité des fonctions de libération automatique parce qu'ils restent autour après que vous les utilisez et il n'y a aucun moyen pour Utiliser la libération automatique lorsqu'il n'est pas possible de savoir quand appeler la libération (par exemple, lorsque vous renvoyez un objet qui n'est pas conservé ailleurs) Le pool autorelease le plus proche libère la mémoire la prochaine fois que le pool est activé. drainé. Si vous utilisez alloc/init, n'oubliez pas d'appeler release, sinon il restera en mémoire

0

Je pense que vous avez souligné la seule différence.

J'utilise le + connectionWithRequest: délégué: méthode

Je pense que quelque chose interne qui maintient la connexion jusqu'à ce qu'il échoue ou se termine

1

Toutes les méthodes Objective-C qui commence par init besoin d'être appelé seulement après alloc méthode. La méthode init renvoie également un objet non auto-libéré.

Toutes les méthodes qui commence à partir de nom similaire au nom de la classe, par exemple, [NSString string], [NSArray array] et autres retours autoreleased objets et ne nécessitent pas préappelés méthode alloc.

En revenant à vous question: vous pouvez utiliser l'une de ces approches: alloc + initWithRequest:delegate: ou connectionWithRequest:delegate: mais assurez-vous de release objet dans le premier cas.

Questions connexes