😊
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の部分を返したい値に応じて変える必要がある。
プロトコル、型の一覧
IntentResult
Result()で指定する値がある場合は以下のプロトコルを使う?
OpensIntent
ProvidesDialog
Dialogを返したい時に使う。Dialogはショートカットの結果に表示されたり、Siriを使った時に読み上げられる文章。音声のみで使うときにはとても重要かも。
ReturnsValue
Valueを返したい時に使う。ショートカットなどで、次のインテントに渡す値のこと。ReturnsValue<String>のように型を指定することができる。
ShowsSnippetView
Viewを表示したい時に使う。ダイアログのように文字だけではなく自分で作ったViewを表示することができる。Siriを使った時にも表示されるが、音声のみで使うことを想定するとあくまでサブのように使った方が良い?
Discussion