4

私の OS X Lion アプリでは、ユーザーは iCloud ファイルを公開することができます。そのために使っURLForPublishingUbiquitousItemAtURLています。

そのメソッドを呼び出した後、その URL をユーザーに提示できます。しかし、ファイルが公開された (そして変更されていない) 後に同じ URL を取得する方法はありますか? たとえば、ユーザーがその URL を別のデバイスで見たい場合はどうすればよいでしょうか?

はいURLForPublishingUbiquitousItemAtURL、再度電話をかけることはできますが、ファイルが既に公開されているかどうかはどうすればわかりますか?

私の最初のアイデアは、すべてのファイル (パブリック URL を持つ) のその URL を含む、ある種の Key-Value データを iCloud に作成することでした。しかし、もっと簡単な方法がないとは信じられません...

ありがとう!ダニエル

4

1 に答える 1

2

あなたの質問を正しく理解できれば、iCloud 内のファイルのパブリック URL を取得または作成する必要があります。

その場合は、URLForPublishingUbiquitousItemAtURL:expirationDate:error: を使用します。

ファイルをダウンロードするためにユーザーに電子メールで送信できる URL を返します。

- (NSURL *)URLForPublishingUbiquitousItemAtURL:(NSURL *)url expirationDate:(NSDate
**)outDate error:(NSError **)error

パラメーター:

  • url - 共有するクラウド内のアイテムの URL を指定します。URL には、アイテムの場所に対応する URLForUbiquityContainerIdentifier: (page 61) メソッドから返されたベース URL をプレフィックスとして付ける必要があります。

  • outDate - 入力時、日付オブジェクトの変数へのポインター。出力では、このパラメーターには、返された URL でアイテムが利用できなくなる日付が含まれます。日付に関心がない場合は、このパラメータに nil を指定できます

  • error - 入力時、NSError オブジェクトの変数へのポインタ。エラーが発生した場合、このポインターは、エラーに関する情報を含む NSError オブジェクトに設定されます。エラー情報が必要ない場合は、このパラメータに nil を指定できます。

戻り値

ユーザーが url でアイテムのコピーをダウンロードできる URL。何らかの理由で URL を作成できなかった場合は nil を返します。

討論

このメソッドは、指定されたファイルのスナップショットを作成し、返された URL を使用して他のユーザーがアクセスできる一時的な iCloud の場所にそのコピーを配置します。スナップショットは、URL が生成された時点でのファイルの内容を反映しており、その後ユーザーの iCloud ストレージ内の元のファイルに変更が加えられても更新されません。スナップショット ファイルは、outDate パラメーターで指定された日付まで、指定された URL で引き続き使用できます。その後、自動的に削除されます。この呼び出しを成功させるには、アプリケーションがネットワークにアクセスできる必要があります。

それで、あなたが言うように、それが正常に公開されたかどうかを確認する必要がある場合は、エラーを確認してください。

ソース: NSFileManagerClass @ Developer.Apple.com

于 2012-04-18T20:46:39.760 に答える