LoginSignup
4
3

More than 5 years have passed since last update.

【swift】【Xcode7】ボタンを押すと100足されるプログラム

Last updated at Posted at 2015-10-27

すごい初心者用です。
とても単純なプログラムなのに、慣れないオプショナル型に四苦八苦したので残しておきます。
オプショナル型に翻弄されたのは自分だけじゃないはず…

ボタンとラベルの設置

スクリーンショット 2015-10-27 22.14.39.png

ラベルとボタンを上記のように設置します。
ボタンのtextは適当に変えてください

名前は以下のように設定しました。

ボタン
スクリーンショット 2015-10-27 22.15.35.png

ラベル
スクリーンショット 2015-10-27 22.17.09.png

コードの編集

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    @IBOutlet var goukei: UILabel!
    @IBAction func button1(sender: AnyObject) {

            let goukeiA:Int? = Int(goukei.text!)

            let sum:Int? = goukeiA! + 100

            goukei.text = String(sum!)
    }
}

重要なのは一番下のbutton部分です。
一行ずつ解説をしていきたいと思います。

let goukeiA:Int? = Int(goukei.text!)

上記の部分では、ラベル(goukei)に書かれたString型をInt型へ変換(キャスト)しています。
この時、"goukei.text"はラベルの中の文字を表しています。

また、オプショナル型である「!」はラベルテキスト内にnilが含まれていないか確認を行っています。
swiftはオプショナル型を推奨しているので、変数を宣言する際いちいち確認をする必要があるみたいです。

左側の"let goukeiA:Int?"の部分ではgoukeiAというInt型の変数を宣言しています。
これはオプショナル型の「?」を使っています。「?」はnilが入ってもいいよという宣言で、「?」を表記していないとコンパイルエラーが起きてしまいます。


let sum:Int? = goukeiA! + 100

上記では、ラベルで書かれている値に100を足しています。
それだけです。


goukei.text = String(sum!)

ここではsumに代入された値をString型に変換しラベル(goukei)へ代入しています。
ここでも、sumに「!」をつけnil確認を行っています。
これで、ラベルのテキストへ反映することができます。

最後に

ラベルの値をキャストして同時に「+100」できないのかなと…(エラーになる)
キャストと「+100」できれば1行削減できるのに…

淡々と説明しましたが間違いがあったらお手数ですがご指摘をお願いいたします…

4
3
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3