見出し画像

AppIntents, Perform()でのReturnの型

perform() returned types not declared in method signature Did not declare ReturnsValue but provided one

というエラーメッセージが出てショートカットを実行できなかった時、文章どおりreturnの型が宣言されてないこと(この場合はValueがreusultで返されてるのに、ReturnsValueが宣言されてない)が問題。

```func perform() async throws -> some IntentResult{```

IntentResultの部分を返したい値に応じて変える必要がある。

プロトコル、型の一覧

https://developer.apple.com/documentation/appintents/app-intents

IntentResult

Result()で指定する値がある場合は以下のプロトコルを使う?

OpensIntent

ProvidesDialog

Dialogを返したい時に使う。Dialogはショートカットの結果に表示されたり、Siriを使った時に読み上げられる文章。音声のみで使うときにはとても重要かも。

ReturnsValue

Valueを返したい時に使う。ショートカットなどで、次のインテントに渡す値のこと。ReturnsValue<String>のように型を指定することができる。

ShowsSnippetView

Viewを表示したい時に使う。ダイアログのように文字だけではなく自分で作ったViewを表示することができる。Siriを使った時にも表示されるが、音声のみで使うことを想定するとあくまでサブのように使った方が良い?

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