短い答えはノーです。インスタンス変数は自動的に解放されません。ビューコントローラーで割り当て解除は発生しません。コントロールされているビューがクリアされます。
クリアしたいものはすべて、viewDidUnload で明示的に行う必要があります (IB を介して追加された変数は、そのメソッドに自動的に配置されることに注意してください)。
viewDidUnload の典型的なシナリオは、コントローラによって管理されているビューが画面上になくなった場合です (たとえば、別のコントローラがナビゲーション コントローラでプッシュされた場合)。システムがメモリ不足を検出したため、ビューがアンロードされました。
ビュー内のオブジェクトへの弱い参照はすべて自動的にクリアされます (どこかに余分な強い参照がない限り)。viewDidUnload では、ビューが画面に表示されたときに再ロードできるデータへの強い参照を nil する必要があります。
viewDidUnload の実行は、dealloc と同じではありません。リリースする (または KVO または通知センターに登録する) 必要があるリソースを管理している場合は、その作業も行う必要があります。これらの場合、viewDidUnload と dealloc の両方で (必要に応じて) 実行する必要があることに注意してください。