2014-09-27 248 views
19

我是Swift中的新手,我正在製作一個簡單的計算器,我不想檢測按下的按鈕,並且我的代碼在下面。如何從Button獲取標籤名稱?

@IBAction func ButtonTapped(TheButton : UIButton){ 

    println(TheButton.titleLabel.text) 
} 

,但它顯示我像"UILabel? Does not have a member a named text"

錯誤,並告訴我要修改這樣

println(TheButton.titleLabel?.text) 

此打印Optional("1")碼(1是我的按鈕名稱)

所以任何人可以幫助我爲什麼這是發生在我身上,如何在沒有可選的情況下打印我的按鈕名稱?

+1

函數名和變量名應該以啓動小寫字母。這是一個增加可讀性的慣例。 – Abizern 2014-09-27 12:14:37

+0

謝謝!它幫助了我。 – Raja 2017-11-10 11:31:24

回答

32

如果您確信titleLabelnil

println(TheButton.titleLabel!.text) 

其他

if let text = TheButton.titleLabel?.text { 
    println(text) 
} 
13

更簡單地說,你可以只是做:

let titleValueString = TheButton.currentTitle! 

如果按鈕的標題是不是無,感嘆號(!)會隱式解開op (currentTitle沒有感嘆號),並且您的常量中的按鈕標題的字符串值爲:titleValueString

2

最常見的答案不再有效。下面是雨燕2.2修正版本:

如果您確信titleLabel不是nil:

print(TheButton.titleLabel!.text!) 

如果你不:

if let text = TheButton.titleLabel?.text { 
    print(text) 
}