完全に Objective-C 脳なので、Swift のお勉強がかなり辛い。今後10年 Objective-C だけでやっていけるのならいいのだけど、どうもそうはいかないっぽいのでようやく重い腰をあげて Swift お勉強中。これはキャッチアップにかなり時間がかかりそう。
本題の sender :AnyObject から UIButton にキャストする方法だけど、次のように書くことはできる。
@IBAction func buttonDidPush(sender: AnyObject) {
let button = sender as! UIButton // sender を UIButton にキャスト
if let buttonTitle = button.titleLabel?.text {
print("\(buttonTitle) was pushed")
}
}
ただし、これだと sender が UIButton でなかった場合にアプリが落ちる。
ので、たぶん、次のような書き方のほうがいい、と思う。
@IBAction func buttonDidPush(sender: AnyObject) {
if let button = sender as? UIButton {
if let buttonTitle = button.titleLabel?.text {
print("\(buttonTitle) was pushed")
}
}
}
とりあえずこれでよさそうな気がするので、しばらくはこんな感じで書いてみる。
Swift のお作法はかなり気合いれて勉強しないといけないっぽい。