私はこのリンクでGCDについてアップルの最後の会議以下午前:https://developer.apple.com/videos/play/wwdc2016-720/?time=33 私はそれがここでの前提条件のことを話すのポイントになった:https://developer.apple.com/videos/play/wwdc2016-720/?time=1267、このポイントに到着スウィフト3. の新機能を:https://developer.apple.com/videos/play/wwdc2016-720/?time=1474がこれに使用されます: .register(オブザーバー:、キュー:) 私の質問:どのようにこの機能を保持するオブジェクトBusyController
? https://developer.apple.com/videos/play/wwdc2016/720/?time=1550前提条件スウィフト3
1
A
答えて
0
register(observer:queue:)
はBusyController
を保持していますか?
まず、元に戻ってみましょう:彼の例の詳細を見失わないようにしましょう。彼はそれがは、はになることができるという強い参照を確立することを言っていないので、deinit
でクリーンアップしようとするだけで慎重にする必要があります。
したがって、DataTransform
はBusyController
を保持しますか?それは単にそのobserver
への強い参照を維持することができます。彼が「言うようになると、「... DataTransform
オブジェクトはBusyController
に強い参照を確立することを想像し、」彼らはただ言っている
をしかし:標準観測方法でこのカスタムregister
方法の一例をconflateないでくださいあなたは熟練した開発者であり、この問題を解決する方法を知っているので、weak
のリファレンスを使用してください。だから一般的に、私たちは彼らの観察者に強い参照を維持する観察方法を書いていないでしょう。
しかし、彼が言うように、強い参照サイクルを回避することがうまくいく場合でも、オブジェクトグラフはかなり複雑になる可能性があるので、deinit
に頼ってクリーンアップすることは必ずしも良い考えではありません。彼は明示的なinvalidate
プロセスを提唱しており、場合によってはdeinit
が呼ばれるまでにオブジェクトが無効になったことをテストするために前提条件を使用しています。
関連する問題
- 1. スウィフト3:条件
- 2. Clickonceアップデートインストールの前提条件
- 3. JSPプロジェクトの前提条件
- 4. セットアッププロジェクト.net 4前提条件
- 5. nixos + haskell + opengl(前提条件)
- 6. メイク:各前提条件
- 7. 方法前提条件
- 8. クライアントプロファイルアプリケーションの前提条件
- 9. RPMパッケージの前提条件
- 10. 前提条件のUML?
- 11. Grailsの3つのWAR展開サーバーの前提条件
- 12. WiXの条件付き前提条件の指定
- 13. パブリックメソッドでの前提条件と事後条件チェック
- 14. 前提条件とデータベースとの対話
- 15. Apache Spark:前提条件質問
- 16. 動的Djangoフィルタ(前提条件付き)
- 17. アソートされたディレクトリの前提条件
- 18. シーザー暗号で前提条件関数
- 19. Windowsインストーラ - サイレントインストールの前提条件
- 20. Railsはcruisecontrol.rbの前提条件です
- 21. 前提条件付きスウィフトコードのテスト
- 22. 展開の前提条件ベストプラクティス
- 23. 前提条件とクラス封じ込め
- 24. SQL Server 2016 MDS - インストールの前提条件
- 25. コード化テストケースの前提条件
- 26. HapiJSユニットテストでのオーバーライドの前提条件
- 27. SAP .Net(NCo)/使用前提条件
- 28. セットアッププロジェクト、SQLコンパクト4の前提条件
- 29. Laravelログイン試行前提条件
- 30. make前提条件のファイルリストを使用