現在、実際の作業を開始する前に、いくつかのことを把握するために ARC をいじっています。私はこのコードをセットアップしました:
NSNumber* n = [[NSNumber alloc] initWithInt:3];
__weak NSNumber* weakN = n;
n = nil;
NSLog(@">>>: %@ %@", n, weakN);
n = nil であるため、n と weakN は nil であると予想していました。私の目にリリースをトリガーする必要がありますか? 残念ながらそうではありません。出力は ">>>: (null) 3" です。ここで何が欠けていますか?
もう1つのことは、私が確信していることですが、以下のコードは、arcを開始するときに苦労していました。
__weak NSNumber* weakN2 = [[NSNumber alloc] initWithInt:3];
NSLog(@">>>: %@", weakN2);
オブジェクトへの強い参照がないため、アークは初期化の直後にオブジェクトを解放するため、同様のコードでいくつかの問題が発生したと確信しています。残念ながら、上記の出力は ">>>: 3" です。
この点について明確な説明が得られることは素晴らしいことです。ここで明らかに何かが欠けています!
敬具、マイケル