2014-09-27 155 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) 
}