2010-03-04 5 views

Répondre

2

Celui-ci est mieux:

-(NSString *)send { 
return @"hai"; 
} 

Votre deuxième suggestion, i.e. [+ retenir aurorelease], n'a pas de sens. Et bien qu'il n'y ait rien de mal à le faire, le premier n'est pas bon dans la convention de nommage: il retourne une instance retenue bien que la méthode ne le décrive pas en incluant une copie/retain/alloc dans son nom de méthode.

+0

Supposons que si je reçois une très longue chaîne NSUrlrequest, (ne pas affecter directement, je dois allouer de la mémoire), quelle est la meilleure façon? –

+1

@senthilmuthu, alors vous utilisez [NSString stringWith ....]. –

2

Généralement, vous devriez retourner les objets auto-libérés, sauf s'il y a de bonnes raisons de ne pas le faire. De cette façon, l'appelant n'est jamais responsable de libérer des objets qu'il ne s'attribue pas lui-même. Si la chaîne que vous obtenez d'une autre fonction n'est pas auto-libérée, alors appelez [autorelease].