レシピを組んでも、目的によっては後でパラメータを変えて使いたい…ということがあります.
先日更新したUSLauncherの言語設定がそれに当たります.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS17.2
スポンサーリンク
シンプルなやり方
例えば任意の数や文字列と一致するかどうかなどで判断するのが一番カンタンです.
しかしこれだとひとつに対してしか対象にできません.
「テキスト」リストを使う
条件となる対象が複数ある場合はifの条件として「テキスト」アクションや「リスト」アクションを使う手があります.
しかし他の種類のデータを混ぜることはできません.
辞書を使う
そこで「辞書」アクションを使ってみます.
辞書であればキーと対応する値の組み合わせなので値がなんのデータであるかをキーの方で特徴づけられます.
そのため画像ではflag1の一組しかありませんが他のデータを混ぜても混乱しません.
なおブール値を使う場合はif文の条件の方で種類をブール値に指定する必要があります(赤の矢印).
切り替え可能なデータ(応用)
上記を応用します.
上では該当の「辞書」の値であるフラグで異なる「結果を表示」にしているだけですが代わりに数やテキスト、辞書に置き換えます.
このif文の結果を利用すれば、指定のフラグに応じて異なるデータに切り替えることが可能です.
実用例
はじめに紹介したこちらのレシピで実際に組み込んだものです.
それまでコメントに日本語と英語を混ぜていたのを今回のアイデアでどちらかのみに指定します.
「辞書」アクションは数やテキストなど複数の種類をまとめて扱える便利なアクションです.
そこでこの中に他のものと混ぜて言語指定用のキーと値を入れておきます.
今回は日本語と英語だけなのでブール値を使っています.
然るべき場所で言語指定のキーの値を取り出し、if文で日本語・英語それぞれのコメントを成すデータを書き分けます.
今回は項目がそこそこあるため「テキスト」アクションを使いjsonで辞書を手書きしています.
結果的に辞書として取得できればこの方法でも問題ないわけです.
あとは該当の箇所で各々のキーの値を取り出し、活用します.
今回のように各々で同じキーを入れて使えば、条件に応じて同じキーの値が変わるというわけです.
こうして得た「辞書」はシンプルに使うだけならそのまま必要な箇所で使用し(画像①)、定型文を含む場合は必要に応じて予め分割して「テキスト」アクションと「テキストを置き換え」アクションを併用します(画像②).
今回は文字列の重複を避けるために置換する項目は_versionという風に頭に"_"を入れた定型文にした上で置換しています.
この例では日英の2通りなのでブール値で十分ですが、3通り以上なら数字などで場合分けするのが無難です.
〆
実用例では日英というテキストの切り替えでしたが当然数のようなパラメータでも可能です.
仕組みさえ分かればあとは好きに応用するだけです.