シナリオ: 共有/同期されたレルム。複数のビューを備えた iOS/Swift アプリ。
バックグラウンドで同期を維持し、複数のビューに自動 (リアルタイム) 更新を提供するために使用する必要があるベスト プラクティスの設計パターンは何ですか?
追加のタスク アプリを見ると、これは理にかなっていますが、アプリには実際にはアクティブなビューが 1 つしかありません。複数のビューがある場合はどうなりますか?
データ変更の Realm 通知を破棄し、ビューごとに再構築する必要がありますか?
シナリオ: 共有/同期されたレルム。複数のビューを備えた iOS/Swift アプリ。
バックグラウンドで同期を維持し、複数のビューに自動 (リアルタイム) 更新を提供するために使用する必要があるベスト プラクティスの設計パターンは何ですか?
追加のタスク アプリを見ると、これは理にかなっていますが、アプリには実際にはアクティブなビューが 1 つしかありません。複数のビューがある場合はどうなりますか?
データ変更の Realm 通知を破棄し、ビューごとに再構築する必要がありますか?
推奨される方法は、単一の View Controller の場合と同じです。各ビュー コントローラーの結果オブジェクトを取得し、それをデータ ソースとして直接使用します。Realm の通知メカニズムを使用して、結果オブジェクトを確認できます。結果に影響を与える変更がバックグラウンド スレッドからコミットされると、通知が発生します。Results オブジェクトは自動的に最新の状態に更新されています。あとは UI を更新するだけです。
オブザーバー パターンを使用できます。また、モデルに CoreData を使用すると、更新/挿入/削除コールバックを取得して、それに応じてビューを更新するのも非常に簡単です。
iOS のオブザーバー パターン: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html
CoreData の詳細については、https ://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/index.html?utm_source=iosstash.io をご覧ください。