Swift:やはり、想定通り。いやな雰囲気。

Photosライブラリの写真のメタ情報をためしに修正してみました。

結論は、「修正は可能。ただし、Photosアプリには反映されない」です。

対応策は、次のいずれか。

  • photos.frameworkを実装する。ただし、今のところ、実装する有効な手立てが見つかっていない。
  • Photosライブラリの場合、自分のアプリが管理するフォルダに入れる。最悪、この方式を採用するしかない。

写真のメタ情報を修正するとき、直接、写真をrewriteするか、.Mesaという名前を持つファイルにコピーするか、選択できるようにしました。実装してから、.Mesaファイルのfilepathを作るのは、写真のフォルダを読み込むときにした方がシームレスかなという感じがしています。[オリジナルのfilepath, .Mesaファイルがあればそのfilepath]という仕様を、[オリジナルのfilepath, .Mesaファイルがあればそのfilepath, .Mesa filepath]としておけば、AのときはBというふうに単純に変換できるような気がします。

オリジナル写真を直接置き換える場合は、[オリジナルのfilepath, .Mesaファイルがあればそのfilepath, オリジナルのfilepath]としておけばすみます。

次善の策(方針の決定):

  • Photosライブラリへのアクセスサンプルコードは、Objective-CでMediaLibraryを使ったものがありますが、これは読み込みのサンプルであり、書き込みサンプルはありません。手詰まり感があります。仮にうまくいっても、写真の読み込みだけなら、現状の抜本的な改善になる可能性は低いです。
  • その前提に立つなら、Photosライブラリの場合は開発中のアプリのベースフォルダにsaveするようにした方が確実です。その上で、Photosライブラリの写真を直接修正するにはどうしたらいいか考える。この方が、現実味があります。
Advertisements