Swift

Swift:Dropboxの共有フォルダへのアクセス

Dropbox共有フォルダに入れた.jpgファイルをアクセスするときに起きる問題について調べています。

NSURLでアクセスしてエラーが起きるとき、次のような理由によります。

共有リンクをクリックしたら自分の Dropbox に戻ってしまいました。なぜですか?

共 有リンクをクリックしてお使いの Dropbox に戻ってしまった場合は、そのファイルにすでにアクセスし保存しているため、保存先に直接移動したことが考えられます。これは共有フォルダにおいても同様 です。Dropbox 内にそのフォルダをすでに保存している場合、リンクはそのフォルダにアクセスします。

この新機能により、Dropbox にすでに保存しているファイルやフォルダへのアクセスが今まで以上に簡単になりました。同じファイルのコピーを複数作成することも避けられます。

まだ Dropbox に保存していないファイルやフォルダへのリンクをクリックした場合は、共有されたファイルやフォルダのみを閲覧することができます

では、NSURLでエラーが起きたとき、どのようにアクセスすればいいのか、それを今調べています。

ファイルが必ず存在するという前提に立つとき、エラーになったらローカルフォルダの中のファイルを探すようにすればいいのかなあ?どの道、URLも一意のものになっているので、ファイル名も一意にしておけばいいはずだから、この対応表を作っておいてURLからファイル名に変換してアクセスするようにしてみます。

その考え方でいいようですね。ただし、contentsOfURLではなくて、contentsOfFileを使えばいいです。

xbImage?.image      = NSImage(contentsOfFile: filepath)

MesaClipのプログラム修正が終わりました。Dropboxの共有ファイル/ローカルファイルからの読み込みができるようになりました。ファイルがない場合は、webページのURLから読み込むことになります。もう少しテストをしてからソースコードをアップします。

確認しないといけないこと:

  • 現在デバッグしている環境のDropbox IDとは異なるIDでログインした環境ではどうか?
  • Dropboxにログインしていない環境ではどうか?
  • アプリを終了させたとき、Objective-Cと同様にアプリをターミネートする方法?

Categories: Swift, 技術