0

XCode で ARC を使用して UIViewController を作成する場合、viewDidUnload:メソッドは次のように定義されます。

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

次に、XIB でボタンを作成すると、このコードがメソッドの先頭に自動的に挿入されます。

[self setSomeButton:nil];

このコードのいずれかが ARC で必要ですか?

4

2 に答える 2

2

これは ARC の影響を受けません。強力な IBOutlets を nil に設定する必要があります。

ただし、iOS 6 の影響を受けます。しかし、それは今のところNDAの下にあります.

于 2012-08-26T19:12:24.023 に答える
0

ほとんどの場合、viewDidUnloadは決して呼び出されないことに注意してください。私の経験では、VC がナビゲーション スタック内の現在の VC の「上」にあり、画面外あり、メモリが不足している場合にのみ呼び出されます。

その場合、サブビューがなくなったことを思い出させるために、Appleがそのコードをそこに置いたことは私の理解です。

dealloc(あなたが正しく想定したように)ARCクリーンアップを処理するため(これらは通常弱いポインターであるため) 、彼らはそのコードを に入れません。

于 2012-08-26T19:17:42.893 に答える