3

複雑なアプリケーションの状態を維持するために、ディレクトリベースの NSFileWrapper (別名ファイル パッケージ) で iCloud 対応の UIDocument を使用しようとしています。私のアプリでは、ユーザーは多くの異なる構成を持つことができます (潜在的なドライバーごとにシート設定がある車のようなものです)。

個々の状態ごとに、通常のファイル NSFileWrapper をファイル パッケージ全体に追加します。

UIDocument のクラウドへの書き込みとクラウドからの読み取りは正常に機能しています。ファイル パッケージが変更されたときにも通知を受け取ります。

問題は、サブファイル (つまり、状態) への追加または変更のどれがパッケージを変更したのか、通知から判断できないことです。

カスタムUIDocumentでpresentedSubitemDidChangeAtURLをオーバーライドしようとしましたが、パッケージのURLしか得られません。ファイル ラッパーの matchesContentsOfURL メソッドも試してみましたが、子ファイル ラッパーには「実際の」URL がないため、正しくないようです。

コメントや提案を歓迎します。

4

1 に答える 1

0

最終的に、各通常ファイルの変更日をローカルに保存されたNSDateと照合することで、この問題に対処しました。UIDocumentが更新されると、最後にプロセスループを実行した後に変更されたアイテムを確認します。ローカルで更新されたファイルが再度処理されないように注意する必要があります。

于 2012-11-05T18:00:21.120 に答える