LoginSignup
1
1

More than 3 years have passed since last update.

[Swift]UIDocumentPickerViewControllerから.objファイルを読み込む

Last updated at Posted at 2020-08-31

結論

"public.geometry-definition-format"

詳細

iOSはファイルを保存するデータ領域の1つに共有領域というものがあります。
この領域へのアクセスはデフォルトで入っているファイルアプリを使うのが一般的ですが、他のアプリからもこの領域にアクセスして例えば写真や動画などを取得することができます。

具体的にはUIDocumentPickerViewController(以下"PickerVC")を実装することになります。
例えば.txtファイルを取得したい場合は

UIDocumentPickerViewController.init(documentTypes: ["public.plain-text"], in: .open)

という形になります。
ここでdocumentTypesの引数にしている"public.plain-text"が.txtファイル用のIdentifierです。
Identifierとはその名の通りファイルの識別子のことで、この識別子に該当するファイルのみ取得できるように制限しています。

AppleはこのIdentifierの一覧を公開しているんですが、この一覧に無いものもあります。.csvとかも無いですね。
ただ、一覧に無いから読み込めないというわけではなく、管理元に行って自分で調べてね、というスタンスみたいです。
(ちなみに.csvのIdentifierは"public.comma-separated-values-text"です)

さて、最近はARが色々盛り上がっているみたいで、会社にもLiDAR付きの新しいiPad Proが届きました。
これからどんどんARが身近になっていくわけですが、ARで表示する3Dモデルにもいくつか種類があります。
その中でも.objファイルは昔から3Dモデルを表示するためによく使われてきました。

その.objファイルですが、こちらも例によってIdentifierはAppleの一覧には存在せず。
色々探したところ、下記のような形にすればアクセスできるとのことです。

UIDocumentPickerViewController.init(documentTypes: ["public.geometry-definition-format"], in: .open)

※検証環境: Xcode11.6 Swift5.2

試してみましたが確かにPickerVCから.objファイルを選択することができました。
.glb(.gltf)や.usdzについてはまた今度検証してみたいと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1