2009-04-01 12 views

Répondre

26

Les deux réponses sont correctes. Si vous souhaitez concaténer plusieurs chaînes et entiers, utilisez appendFormat de NSMutableString.

NSMutableString* aString = [NSMutableString stringWithFormat:@"String with one int %d", myInt]; // does not need to be released. Needs to be retained if you need to keep use it after the current function. 
[aString appendFormat:@"... now has another int: %d", myInt]; 
+0

J'utilise quelque chose comme ça pour la concaténation de chaînes mais cela me donne un avertissement: "La déclaration locale de 'aString' cache la variable d'instance" .Qu'est-ce qui pourrait générer cette erreur? – Hari

+1

Un signe égal n'est-il pas manquant après aString? – VagueExplanation

30
[NSString stringWithFormat:@"THIS IS A STRING WITH AN INT: %d", myInt]; 

C'est typiquement comme ça que je le fais.

+1

Regardez également dans localizedStringWithFormat: et initWithFormat: locale: lors du formatage d'un nombre à utiliser à l'écran. –

3
NSString *s = 
    [ 
     [NSString alloc] 
      initWithFormat:@"Concatenate an int %d with a string %@", 
      12, @"My Concatenated String" 
    ]; 

Je sais que vous recherchez probablement une réponse plus courte, mais c'est ce que j'utiliserais.

+0

Est-ce la même chose que [NSString stringWithFormat:]? – PlagueHammer

+0

Avec cette méthode, vous devrez libérer la chaîne lorsque vous avez terminé. –

+0

@Debajit, c'est fondamentalement pareil. Vous devrez libérer la chaîne après l'avoir utilisée. –

3

chaîne1, x, elles sont respectivement déclarées en tant qu'objet chaîne et en tant que variable entière. et si vous souhaitez combiner les deux valeurs et ajouter des valeurs int à un objet chaîne et affecter le résultat à une nouvelle chaîne, procédez comme suit.

NSString *[email protected]"Hello"; 

int x=10; 

NSString *string2=[string1 stringByAppendingFormat:@"%d ",x]; 

NSLog(@"string2 is %@",string2); 


//NSLog(@"string2 is %@",string2); is used to check the string2 value at console ; 
-1

Il semble que la vraie réponse est non - il n'y a pas moyen facile et court pour concaténer NSStrings avec Objective C - rien de semblable à l'aide de l'opérateur « + » en C# et Java.