2010-06-30 12 views
1

La fonction de compilation et d'analyse de xCode se plaint de la possibilité que les «s» soient des déchets.Meilleure pratique pour l'initialisation de vos NSStrings sur l'iPhone

Quelle est la meilleure solution? A, B ou C?

NSString *s;    // A 
NSString *s = nil;  // B 
NSString *s = @"";  // C 

if(x == 1) s = @"you picked 1"; 
if(x == 2) s = @"you picked 2"; 
if(x == 3) s = @"you picked 3"; 

Répondre

2

Je vais toujours avec

NSString *s = nil; 

comme une valeur d'initialisation par défaut. C'est plus sensible qu'une chaîne vide (une chaîne vide est une "chose", alors que nil est une valeur inconnue), et puisque vous pouvez le message nil en Objective-C cela (généralement) ne cause pas de gros problèmes si j'oublie en quelque sorte donnez-lui une valeur "réelle".

+0

nul n'est pas inconnu, il est très bien défini. D'autre part, la chaîne vide alloue (probablement) de la mémoire. nul est le chemin à parcourir. – Eiko

+0

Je veux dire que 'nil' représente une valeur inconnue, alors qu'une chaîne vide est une valeur connue. – mipadi

+0

Quelle sera la 'valeur' ​​de 's' lors de l'initialisation comme' NSString * s; Est-ce que ce sera juste «nul», comme avec les ivars qui n'ont pas été assignés manuellement une valeur, ou est-ce que ce sera quelque chose d'autre? –