iOSプログラムの1つでメモリリークを回避しようとしています。私はそれをこれらに似たいくつかの行に釘付けにしたと思います:
NSString *s1Upper = [s1 uppercaseString];
s1Upper = [s1Upper stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
(これらの2行は論理的な観点からは意味がないことを私は知っています、ただ私が持っている記憶の質問を説明するだけです。)
s1が@"abc"(スペースで終わる)であるとしましょう。NSStringsを理解する方法では、s1Upperは、コードの最初の行の後の1つのNSString(@ "ABC"はスペースで終わる)を指します。2行目以降は、別のNSString(スペースなしの@ "ABC")を指しています。
私の質問:最初のNSStringはいつリリースされますか?
私の推測では、現在のNSAutoreleasePoolが排出されるとリリースされます。その場合、フォローアップの質問があります。これに影響を与え、排水を制御するにはどうすればよいですか?