2010-09-05 8 views
1

Peut-être un NSString réutilisés comme ceci:même NSString Affectation plusieurs fois

NSString *string = @"first value"; 

NSLog(string); 

string = @"second value"; 

NSLog(string); 

Cela fonctionne lorsqu'il est testé, mais est-ce codage approprié?

Merci.

+0

Veuillez formater votre code la prochaine fois. –

Répondre

0

Oui, votre exemple est totalement correct. Que craignez-vous que ce soit «inapproprié»?

Edit: il est à proprement parler probablement plus sûr d'utiliser:

NSLog(@"%@", string); 

lieu de vous connecter simplement la chaîne directement. Je ne pense pas que ce soit ce que vous demandiez, cependant.

+0

Ma préoccupation est que ce n'est pas un NSMutableString. Est-ce que réattribuer NSString avec une chaîne de longueur différente corrompre quelque chose en mémoire? – Jim

+0

@Jim, vous ne modifiez aucune chaîne dans votre code; juste un pointeur sur une chaîne. –

+0

Alors qu'arrive-t-il à la "première valeur"? Est-ce qu'il reste en mémoire ou est-il éliminé? Devrais-je le libérer? – Jim

0

Vous ne modifiez pas la chaîne. Au lieu de cela, vous attribuez simplement une adresse différente au pointeur string.

et @"first String" et @"second String" sont juste des chaînes constantes.

Questions connexes