見出し画像

AppIntentsのParameterで写真を読み込みたい

結論: IntentFileを使う

Parameterで写真を読み込みたかったのだが、Imageなどの型は対応していないのでIntentFileという型を使う必要がある。データの型なので、そのままでは画像としては使えない。UIImageに変換したりする必要がある。

//ParameterはIntentFile型
@Parameter(title: "Photo", supportedTypeIdentifiers: ["public.image"], requestValueDialog: IntentDialog("Choose a photo")) var photo: IntentFile

//データをImage型として読み込む
var image: Image?
let data = photo.data
if let uiImage = UIImage(data: data) {
    image = Image(uiImage: uiImage)
}

個人的にはこのような形で使った。

この記事が気に入ったらサポートをしてみませんか?