2

-(void)archive現在、私のアプリケーションには、アプリケーションのドキュメント ディレクトリに自身をアーカイブするメソッドを持つ最上位オブジェクトがあります。

ファイル パスを変更することで、アーカイブをローカルではなく iCloud に単純に保存できるかどうか疑問に思っています。

私は iCloud の使用についてかなり読んだことがありますが、この質問が解決されているのを見たことがありません。無理だとは思いますが、確実に知りたいです。

ありがとうございました。

4

1 に答える 1

2

ファイルを iCloud に直接保存するのではなく、ローカルに保存してから、アプリに関連付けられた iCloud フォルダーに移動する必要があります。

最初に、ファイルを iCloud に保存するために使用する必要があるファイルの調整を確認する必要があります。

次に、保存するファイルの URL またはパスを取得するだけです。以下を呼び出して iCloud ディレクトリを取得します。[[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:@"myIdentifier"];次に、適切なパス コンポーネントを追加します。

最後に、ファイル (egmyFile.dat) をアプリケーションのドキュメント ディレクトリなどの一時的なローカル フォルダーに保存してから呼び出し[[NSFileManager defaultManager] setUbiquitous:YES itemAtURL:/*local URL*/ destinationURL:/*Cloud URL*/ error:&error];ます。

iCloud ドキュメント ディレクトリに保存すると、ファイルは iCloud ドライブ経由でユーザーに表示されます。別の iCloud ディレクトリに保存すると、ユーザーはファイルを見ることができなくなります。

注:別のデバイスによって iCloud に保存されたファイルを検出するには、 NSMetadataQueryを使用する必要があります。また、iOS デバイスは、iCloud に保存したファイルを自動的にダウンロードしません。[[NSFileManager defaultManager] startDownloadingUbiquitousItemAtURL:url error:&error];ダウンロードを開始するには、具体的に呼び出す必要があります。OS X デバイスは自動的に iCloud ファイルをダウンロードします。NSFilePresenterプロトコルを使用して、アプリの有効期間中に iCloud ディレクトリへの変更を監視できます (別のデバイスによって保存されたファイルを検出するため)。

于 2015-01-06T18:24:57.647 に答える