Changer la valeur d'un Mutable String

yodarkyodark Membre
10:54 modifié dans API AppKit #1
Bonjour,

J'ai un petit problème avec mes strings je voudrais pouvoir le changer en cours de route j'utilise donc un mutable string mas quand j'essaie d'utiliser setString ou appendFormat il me dit

eason: 'Attempt to mutate immutable object with appendFormat:'

NSMutableString * title = @test ;
if ([[message objectAtIndex:0]  isEqualToString:@ERR])  [title appendFormat:LocStr(@myErr) ];


si je fais comme cela ca marche mais j'ai un avertissement

NSMutableString * title = @test ;
if ([[message objectAtIndex:0]  isEqualToString:@ERR])  title = LocStr(@myErr) ];


La source de lavertissement viend du fait que locStr doit être formaté mais quel élement d'assignation je dois utiliser ?

Réponses

  • FloFlo Membre
    octobre 2008 modifié #2
    Je sais pas si j'ai bien compris ce que tu veux faire mais pour moi appendFormat: s'utilise comme ça (avec au moins deux arguments) :
    <br />  [maMutableString appendFormat: @&quot;%@&quot;, @&quot;uneStringCommeçaOuEnVariable&quot;];<br />
    


    La méthode appendFormat: colle tout ce qui colle au format à  la suite de maMutableString.

    On peut de plus mettre tous les types de format qu'on veut, @un nombre: %i, une string: %@ etc...", suivant le formatage du C.

  • Philippe49Philippe49 Membre
    10:54 modifié #3
    dans 1225362654:

    NSMutableString * title = @test ;


    C'est le membre de droite qui décide ici : ta variable title est ici une immutable string
    (le pointeur title pointe sur une string constante)

    Il faut mettre pour title en autorelease
    NSMutableString * title =[NSMutableString stringWithString: @test] ;

    ou en retain
    NSMutableString * title =[[NSMutable alloc] initWithString: @test] ;
Connectez-vous ou Inscrivez-vous pour répondre.