データ、アーカイブされたオブジェクト、および画像のパッケージにファイル ラッパーをカプセル化する UIDocument のカスタム サブクラスを実装する iOS アプリがあります。最初に実装を iCloud サポート用の UIDocument に変換しましたが、信頼性が低すぎるため、iCloud 部分を引き出して、ローカル ストレージで UIDocument を使用しています。
ユーザーがデータを変更すると、 updateChangeCount: を UIDocument インスタンスに送信し、バックグラウンドで定期的に自動保存します。アプリケーションがバックグラウンドになったときにのみドキュメントを閉じます。UIDocument の contentsForType メソッドを呼び出す自動保存の後、loadFromContents も呼び出されることを発見しました。これは論理的に理解できず、インターフェースにも問題を引き起こしています。
loadFromContents は、ドキュメントを開くとき、または iCloud ドキュメントが別のデバイスで変更された場合にのみ呼び出されると思いました。そのため、ドキュメントがバックグラウンドで自動保存されると、再読み込みも行われ、UI が更新され、保存されていない進行中の新しい作業が破棄されることがあります。UI での再読み込みを無視することもできますが、モデル データが UI オブジェクトと異なるという問題がいくつかあります。
では、この動作を引き起こすために何が間違っているのでしょうか? loadFromContents を開始しないように保存したり、その動作を処理する方法を理解したりしたいと思います。
ありがとう!