すごい初心者用です。
とても単純なプログラムなのに、慣れないオプショナル型に四苦八苦したので残しておきます。
オプショナル型に翻弄されたのは自分だけじゃないはず…
ラベルとボタンを上記のように設置します。
ボタンのtextは適当に変えてください
名前は以下のように設定しました。
#コードの編集
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行削減できるのに…
淡々と説明しましたが間違いがあったらお手数ですがご指摘をお願いいたします…