- (void)createAString:(NSString **)str
{
*str = [NSString stringWithString:@"Hi all!"];
[*str autorelease]; // ???? is this right ?
}
Comment utiliser la libération ou autorelease? Je ne veux pas sortir en dehors de la fonction bien sûr :)Si je souhaite créer une nouvelle instance d'un objet dans une fonction dont le pointeur est transmis par référence
...
NSString *createStr;
[self createAString:&createStr];
NSLog(@"%@", createStr);
Merci pour votre réponse ... mais comme je l'ai mentionné je ne veux pas créer l'instance en dehors de la fonction, parce que je n'en ai pas besoin tout le temps! mes besoins d'origine sont d'utiliser la fonctionnalité que j'ai demandée dans une fonction comme '- (int) terminalExec: (NSString *) arguments execPath: (NSArray *) args sortie: (NSString **) outString' où il exécute une tâche dans un terminal et retourne l'état (int) de l'exécution ET la sortie du terminal dont j'ai parfois besoin. alors ... pas si simple besoin :) Merci encore! –
Ce n'est pas vraiment plus élégant IMO. Demander à l'appelant de créer un objet modifiable pour vous est un peu hackish et n'est généralement pas fait. – Chuck
Non, il serait plus élégant de tirer parti du fait qu'une méthode peut retourner une valeur et l'utiliser pour retourner la chaîne requise. – JeremyP