ASCII倶楽部

このページの本文へ

Swift Playgroundsで学ぶiOSプログラミング ― 第16回

制御文switch〜case文を理解

Swiftで超簡易な電卓アプリを作る

2016年11月28日 17時00分更新

文● 柴田文彦 編集●吉田ヒロ

  • この記事をはてなブックマークに追加
  • 本文印刷

 前回から、素(す)のSwift Playgroundsから少しだけ脱却して、「Answer」のテンプレートを選んで作成したプレイグラウンドからプログラミングを始めています。そのテンプレートには、やや原始的なものながら、プログラムとユーザーがやりとりするための機能が、一種のライブラリとして含まれています。それによって、show()とask()という大きく2つのグループに分けられるファンクションが使えるようになりました。これで、プログラムからユーザーに対して何かを表示する機能と、ユーザーの入力操作の結果をプログラムで読み取る機能が実現できます。

 前回はユーザーが入力した2つの値を読み取って、それらを掛け合わせた結果を表示するというごく基本的な機能を試しました。今回は掛け算だけでなく、足し算、引き算、割り算といった、いわゆる四則演算もできるようにして、電卓的に使えるプログラムを作ります。

選択肢を示して選んでもらう

 Answerテンプレートが含んでいる機能には、単純な数字や文字列を入出力するものだけでなく、ちょっとだけ高度なものも含まれています。それは日付を入力するものと、プログラムで示した選択肢の中から1つを選ぶというものです。前回にもその名前だけは紹介しましたが、前者はaskForDate()、後者はaskForChoice()というファンクションによって実現されています。

 日付を入力するaskForDate()は、このファンクションを呼ぶだけでデイトピッカーを表示するのでインパクトは強いのですが、プロンプトとして表示する文字列以外の引数はなく、使い方はごく簡単です。

 一方、選択肢を表示して選ばせるaskForChoice()は、一般的なピッカーを表示します。そこに表示する選択肢は引数として与えます。これは、今まで紹介した中では、もっとも複雑な引数を持つファンクションでしょう。そうは言っても、使い方はけっして難しくありません。引数は大きく2つ与えればよいのです。まず最初の引数は、プロンプトとして枠の中に表示する文字列です。これは省略することができます。2番目の引数は、選択肢を表す文字列の配列です。実例を示しましょう。

var selection = askForChoice("どれが欲しい?", options: ["MacBook Pro", "iPad Pro", "iPhone 7"])

 これを実行すると、中に薄い文字で「どれが欲しい?」と書かれた枠と、その下には選択肢として「MacBook Pro」「iPad Pro」「iPhone 7」の3つがあるピッカーが表示されます。

askForChoice()ファンクションは、配列で与えた選択肢から1つを選ぶピッカーを表示する機能を提供します

 この中から好きなものを選んで、枠の右側に表示される「Submit」をタップすれば、その文字列がこのファンクションの値として返され、結果的に変数selectionに代入されます。このあたりの仕組みはもはや説明する必要はないでしょう。

カテゴリートップへ

この連載の記事

週間ランキングTOP5

ASCII倶楽部会員によく見られてる記事はコレだ!

ASCII倶楽部の新着記事

会員専用動画の紹介も!