Le code suivant me cause quelques problèmes. La troisième ligne provoque un plantage du programme ... cela ne se produit pas la première fois que j'interviens mais d'une manière ou d'une autre dans le programme. Si je commente cette troisième ligne, le programme fonctionne bien.L'ajout d'une chaîne Objective-c provoque une exception
NSString *myRequestString = @"text";
int i = 1;
myRequestString = [myRequestString stringByAppendingString:[NSString stringWithFormat: @"t=%d", i]];
ce code provoque cette exception:
*** -[CFString release]: message sent to deallocated instance 0xb4c43fe0
Sur une note de côté, quelqu'un peut me dire comment concaténer des chaînes en Objective-C comme une autre langue normale ... Je ne peux » Je crois qu'il n'y a pas d'opérateur de concaténation.
Toute aide est grandement appréciée.
Vous savez, vous pouvez utiliser '-stringByAppendingFormat:'. – kennytm
merci pour cette astuce, commuté, mais je reçois toujours l'exception. –
Etes-vous sûr que l'exception provient de cette ligne ou est-elle ailleurs dans votre code? Cela indique que vous (ou quelque chose) appelle '[someString release]' après que 'someString' a déjà été désaffecté (ref count est 0). De plus, vous fuyez l'instance d'origine de 'myRequestString' car' stringByAppendingString' renvoie une nouvelle instance de 'NSString'. Vous pouvez corriger cela avec 'myRequestString = [[myRequestString autorelease] stringByAppending ......]' –