web-dev-qa-db-fra.com

Comment convertir le type de données NSInteger en NSString?

Comment convertir NSInteger en type de données NSString?

J'ai essayé ce qui suit, où month est un NSInteger:

  NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
127
senthilMuthu

NSIntegers ne sont pas des objets, vous les convertissez en long, afin de correspondre à la définition actuelle des architectures 64 bits:

NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];

259
luvieere

Voie Obj-C =):

NSString *inStr = [@(month) stringValue];
176

Objective-C moderne

Un NSInteger a la méthode stringValue qui peut être utilisé même avec un littéral

NSString *integerAsString1 = [@12 stringValue];

NSInteger number = 13;
NSString *integerAsString2 = [@(number) stringValue];

Très simple. N'est-ce pas?

Swift

var integerAsString = String(integer)
71
MadNik

%zd fonctionne pour NSIntegers (%tu pour NSUInteger) sans envoi ni avertissement sur les architectures 32 bits et 64 bits. Je ne sais pas pourquoi ce n'est pas le " méthode recommandée ".

NSString *string = [NSString stringWithFormat:@"%zd", month];

Si cela vous intéresse, pourquoi cela fonctionne, voyez cette question .

8
Kevin

Moyen facile à faire:

NSInteger value = x;
NSString *string = [@(value) stringValue];

Ici, la @(value) convertit le NSInteger donné en un objet NSNumber pour lequel vous pouvez appeler la fonction requise, stringValue.

4
Karthik damodara

Lors de la compilation avec support pour arm64, cela ne générera pas d'avertissement:

[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
2
Andreas Ley

Vous pouvez aussi essayer:

NSInteger month = 1;
NSString *inStr = [NSString stringWithFormat: @"%ld", month];
1
NeverHopeless

NSNumber peut être bon pour vous dans ce cas.

NSString *inStr = [NSString stringWithFormat:@"%d", 
                    [NSNumber numberWithInteger:[month intValue]]];
0
hothead

La réponse est donnée, mais pensez que dans certaines situations, ce sera aussi un moyen intéressant d’obtenir une chaîne de caractères de NSInteger.

NSInteger value = 12;
NSString * string = [NSString stringWithFormat:@"%0.0f", (float)value];
0
Nazir