2012-03-05 4 views
2

iCloudを使用して、アプリケーションのデバイス間でユーザーXMLファイルをUIDocumentサブクラスと同期させます。質問のコードと似ています。http://stackoverflow.com/questions/7795629/icloud-basics-and-code-サンプル。いつどのように競合を検出すべきかはわかりません。私はsdkのドキュメントを読んでインターネットを検索しましたが、詳細な情報を持った情報は見つけられませんでした。私たちは NSNumber *のようなコードを使用することができます。 [url getResourceValue:&競合するforKey:NSURLUbiquitousItemHasUnresolvedConflictsKeyエラー:nil];iCloudの競合を検出するタイミングと方法は?

私のアプリでは、常に "競合"の真の価値があるようです。 また、競合を検出する必要があるかどうかはわかりませんが、私の推測はUIDocumentサブクラスのcontentsForTypeメソッドが呼び出される前です。もし誰かが偉大なヒントを与えることができれば。

答えて

1

UIDocumentStateChangedNotificationを守ってください。ドキュメントのdocumentStateプロパティにUIDocumentStateInConflictフラグが設定されていると、競合が発生します。ドキュメントは同時に複数の状態になる可能性があるので、==でチェックしないでください。代わりにif (document.state & UIDocumentStateInConflict) {...などを使用してください。

otherVersionsOfItemAtURL:クラスメソッドの競合するバージョンをNSFileVersionにすることができます。

Document-Based App Programming Guide for iOSchapter on resolving document conflictsに詳細情報があります。

関連する問題