決定論的なdealloc(例:クリーンアップ用)に依存することは正当な慣行ですか?
ARC、および手動の参照カウントでさえ本質的に決定論的であるため、他の人がすぐに呼び出されるdeallocに依存することについてどう考えているのか疑問に思いました(比較的、autoreleasepoolを考慮して)。
C#のような他の最新のプログラミング言語では、決定論的なクリーンアップが必要な場合に、disposeのようなパターンが採用されます。そして、ガベージコレクションを備えたObj-Cもこの動作を促進すると思います。
つまり、例としては、viewDidDisappearのときどきイライラするセマンティクスをプログラムしようとするのではなく、deallocの未処理の操作をキャンセルするUIViewControllerがあります。
もう1つの例は、openまたはcloseを呼び出す必要はなく、initとdeallocでそれぞれ暗黙的に開いたり閉じたりするストリームオブジェクトです。
AppleはGCを廃止したので、この種のパターンはすぐには壊れないだろうと思います。これを奨励すべきかどうかについてのドキュメントは見つかりませんが、非常に便利です。