6

AppleのドキュメントとRayWenderlichのチュートリアルを読みました。UIDocumentを使用せざるを得ないようですので、ドキュメントで読み上げました。ドキュメントベースのアプローチを使用することが効果的であることがわかりました。

私の問題は、プラットフォーム(iOS)に固有の手法に縛られたくないため、私のアプリには、NSObjectからのみ継承する独自のモデルがゼロから作成されていることです。これには、保存/読み込みが含まれます。

今、私は古いモデルと一緒にiCloudを統合する必要があります。古いモデルの実装を維持し、iCloudを統合できるようにするために、エレガントで効果的な方法でそれを行うにはどうすればよいですか?

4

1 に答える 1

10

を使用するように強制されることはありませんUIDocumentNSFileManagerとを介してiCloudを使用できますNSMetadataQuery。一般的なアプローチは次のとおりです。

ファイルを作成するとき

  • 通常どおり、iCloudを使用せずにファイルをローカルに作成します
  • -[NSFileManager setUbiquitous:itemAtURL:destinationURL:error:]ファイルをiCloudストレージに転送するために使用します。
  • (必要に応じて)NSMetadataQueryURLリソース値を使用して、またはポーリングして、アップロードの進行状況を確認します。

ファイルを開くとき

  • NSMetadataQueryiCloudに常駐するファイルを見つけるために使用する
  • -[NSFileManager startDownloadingUbiquitousItemAtURL:error:]ダウンロードを開始するか、ローカルコピーをクラウドコピーと同期するために使用します。
  • NSMetadataQueryを使用して、またはを使用してURLリソース値をポーリングすることにより、アップロードの進行状況を確認します[NSURL resourceValuesForKeys:]

ファイルを編集するとき

  • NSFileCoordinatorユビキタスデーモンとのファイルアクセスを調整するために使用します。
  • NSFilePresenterファイルへの変更の通知を取得するために使用します。

これはすべてWWDC2012(そして、おそらく2011年、私は覚えていません)のセッションでカバーされており、必要なクラスとメソッドはすべてiOSのドキュメントにあります。

于 2013-03-26T16:37:57.937 に答える