質問: 自前のiOSアプリから`openURL`を使用して他の自前のアプリを起動するときに,自由なオブジェクトを複数渡したいと考えているのですが,これを実現する方法はあるのでしょうか? `Dictionary`が渡せれば,`Dictionary`の中に自由な型を自由に入れることができるので,やりたいことが実現できると思っています. `DocumentInteractionController`も検討しましたが,`DocumentInteractionController`は起動するアプリを直接指定することはできないと思い,諦めました. ご存知の方がいましたら教えてください. よろしくお願いします.
回答: URL Schemeを使って実現するにはクエリパラメータの形でデータを受け渡す方法があります。例えばJSONをクエリパラメータで渡せばDicrionaryを渡すのとほぼ同じことができます。Base64などでバイナリをテキスト化して渡すような方法もあります。URLの長さの上限は明確に書かれているわけではないので、渡すデータの大きさには注意する必要があります。 ただ、現在は自分が提供するアプリ同士なら、データを共有する方法は他にもっと柔軟にできる仕組みがあるのでそっちを使う方が良いと思います。 例えば、App Groupsを使えば、自分が提供しているアプリ同士ならデータの保存場所をそのまま共有することができます。アプリの起動はURL Schemeでやり、データはApp Groupsのコンテナを使って共有する方が柔軟だと思います。