それらが存在することは確かですが、ViewControllerでアウトレットを宣言するための公式のベストプラクティスを見つけたり、特定したりするのは困難です。
私が見る限り、3つのオプションがあります:
- イヴァルのみ
- プロパティのみ
- Ivar で裏付けられたプロパティ
現在、IB から ViewController にドラッグしてプロパティを自動生成しようとすると、Xcode がクラッシュしますが、私が覚えている限りでは、そうすると ivar なしでプロパティが作成されます。ivar セクションにドラッグすることもできます。これにより、プロパティのない ivar が作成されます。これは、プロパティのみのアウトレットと ivar のみのアウトレットの両方が Apple で問題ないことを示唆しています。
したがって、viewDidUnload では、アウトレットのいずれかに nil を割り当てる必要がありますが、dealloc はどうでしょうか。ivar なしでプロパティを使用した場合、init または dealloc でアクセサーを使用することを想定していない場合、アウトレットを解放するにはどうすればよいでしょうか?
アクセサーなしでアウトレットを解放できる唯一のパターンは、ivar に裏打ちされたプロパティを使用することであるように私には思えます。そのため、アクセサーを使用せずに dealloc で ivar を手動で解放できますが、これは Apple の 1 つのオプションです。コード生成はサポートしていません。