web-dev-qa-db-fra.com

Ajouter une chaîne avec une variable

Je suis un gars de Java qui vient à Objective-C. En Java, pour ajouter une variable à une chaîne, vous devez faire quelque chose comme:

someString = "This string is equal to " + someNumber + ".";

Je n'arrive pas à comprendre comment le faire en Objective-C. J'ai une NSMutableString que j'aimerais ajouter au milieu d'une chaîne. Comment puis-je faire cela?

J'ai essayé:

NSString *someText = @"Lorem ipsum " + someMutableString;
NSString *someText = @"Lorem ipsum " + [someMutableString stringForm];

et quelques autres choses, dont aucune ne semble fonctionner. Échangez également le +s avec le ,s.

12
Peter Kazazes

Vous pouvez utiliser appendString:, mais en général, je préfère:

NSString *someText = [NSString stringWithFormat: @"Lorem ipsum %@", someMutableString];
NSString *someString = [NSString stringWithFormat: @"This is string is equal to %d.", someInt];
NSString *someOtherString = [NSString stringWithFormat: @"This is string is equal to %@.", someNSNumber];

ou bien:

NSString *someOtherString = [NSString stringWithFormat: @"This is string is equal to %d.", [someNSNumber intValue]];

etc... 

Ces chaînes sont autoreleased, veillez donc à ne pas perdre leur valeur. Si nécessaire, conservez-les ou copiez-les et libérez-les vous-même plus tard.

29
Rudy Velthuis

Essaye ça:

NSMutableString * string1 = [[NSMutableString alloc] initWithString:@"this is my string"];

[string1 appendString:@" with more strings attached"];

//release when done
[string1 release];
9
Louie

Vous devez utiliser stringByAppendingString

NSString* string = [[NSString alloc] initWithString:@"some string"];
string = [string stringByAppendingString:@" Sweet!"];

N'oubliez pas de [string release]; lorsque vous avez terminé, bien sûr.

6
Trevor
NSMutableString *string = [[NSMutableString alloc] init];

[string appendFormat:@"more text %@", object ];
0