Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 668 - Course Overview and Introduction to iOS, Xcode, and Swift 4

ポール先生の講義1最後5分の内容をまとめます。

Developing iOS 9 Apps with Swift - Free Course by Stanford on iTunes U

関数ボタンを設置するのですが、問題が生じることを前提に「7」ボタンをコピペして左隣に置きます。ボタン名をダブルクリックして「7」を「π(Opt + P)」パイに変更します。新しいメソッドperformOperation」を作るために「π」ボタンをコード内に「Ctrl + ドラッグ」してTypeを必ず「UIButton」に変更してメソッドを繋ぎます。

詳しい説明はしませんがメソッドは最初こんな風になリました。

@IBAction func performOperation(sender: UIButton) {
    if let mathematicalSymbol = sender.currentTitle {
        if mathematicalSymbol == "π" {
            display.text = String(M_PI)
        }
    }
}

ここのコードの中でポイントは「String()」です。2年前のポール先生のiOS8の講義を聴いていた頃は「M_PI」も何の事か分かってなかったですけどね(^^;)

まずポール先生は「display.text = M_PI」とコードしてエラーをわざと出してDouble型をString型に変換するために「String()」を使っているのですが、これは変換関数ではなくイニシャライザーという説明をしています。Double型の引数を受け取ってString型を生成しているんです。

ここでランすると数字の後半が「...」になって全部表示されません。これを修正するためにラベルのアトリビュートから「Autoshrink」の設定を変更します。

f:id:yataiblue:20160508182203j:plain

これでランすると問題が2つあることが分かりました。「π」という表示とその後にタイプが続いてしまいます。
f:id:yataiblue:20160508182650j:plain
「π」が表示されるのは、最初にボタンを作成するときに「7」ボタンをコピペしたため、メソッド「touchDigit」も繋がっているからです。touchDigitの●にカーソルを合わせると繋がっていることが分かります。

f:id:yataiblue:20160508183229j:plain

「π」ボタンのコネクションを確認する方法もここで説明しています。ボタン上で「右クリック」するとコネクションリストが表示されるので、ここでtouchDigitを消します。

f:id:yataiblue:20160508183752j:plain

タイピングが続いていしまう問題の対処は簡単です。userIsInTheMiddleOfTypingを設定してやればいいんです。

@IBAction func performOperation(sender: UIButton) {
    userIsInTheMiddleOfTyping = false
    if let mathematicalSymbol = sender.currentTitle {
        if mathematicalSymbol == "π" {
            display.text = String(M_PI)
        }
    }
}

これでランをするとすべて問題が解決しました。
f:id:yataiblue:20160508184112j:plain
ラスト5分の駆け足で関数ボタンを設置しました。これで講義1の内容が終了です。明日からは講義2に入りますが、この講義2の内容が盛りだくさんでかなり勉強になります。

今日はここまで。