Par exemple, je dois ajouter un mot à une chaîne existante.Ai-je besoin de libérer NSString * temp = @ "aaa"?
NSString * temp = @"some prefix";
someString = [temp stringByAppendString: someString];
Dois-je libérer la température de l'objet?
Par exemple, je dois ajouter un mot à une chaîne existante.Ai-je besoin de libérer NSString * temp = @ "aaa"?
NSString * temp = @"some prefix";
someString = [temp stringByAppendString: someString];
Dois-je libérer la température de l'objet?
Non, vous ne devriez pas augmenter le nombre de retenues de @ "un peu de texte". PS: En fait, toutes les constantes @ "..." ont retainCount sur MAX_INT, donc ce n'est pas grave si vous les relâchez ou non :).
Tous les @ "..." sont stockés dans un pool en tant que constantes? Alors qu'est-ce qui s'est passé dans mon cas? La chaîne "un préfixe" sera mise en caisse et stockée dans la piscine? Alors comment le libérer puisqu'il n'est plus utile maintenant. – icespace
@icespace: "Cela ne sert à rien maintenant" ne signifie pas que vous devriez libérer un objet. Vous ne libérez des objets que si vous les possédez, et vous ne possédez pas celui-ci. En pratique, il est stocké dans le segment de données. – Chuck
Vous n'avez pas appelé toutes les méthodes contenant new
, alloc
, retain
ou copy
, de sorte que vous ne possédez pas, vous ne devriez pas le libérer.
essayez de chercher la prochaine fois ... cette question exacte a déjà été soulevée. –