このトピックを完全に理解したと思ったとき、私は基本に戻りました。
(たとえば)を使用して、自動解放されたオブジェクトをインスタンス化するメソッドがありますstringWithFormat
。
return [NSString stringWithFormat:@"what"];
次に、このメソッドを別のメソッドから呼び出し、さらに別のメソッドを呼び出すたびに、この autoreleasedNSString
を返すたびに、階層の各レベルで呼び出します。コードは正常に機能し、NSString
インスタンスは階層の各レベルで損なわれていません。
インスタンスは自動解放されるため、コール スタックの任意の時点で突然 0 になる可能性があると考えretainCount
ました (つまり、メソッドの 1 つが解放されたオブジェクトで動作している可能性があります)。このオブジェクトに依存できないというのは本当ですか?
編集:質問があまり明確ではなかったことを認識しています。ごめん。つまり:
Method1 ---calls---> Method2 ---calls---> Method3 ---instantiates the string--->