Swift 单击按钮时动态标签更改
我正在尝试使用以下代码更改标签文本:Swift 单击按钮时动态标签更改,swift,Swift,我正在尝试使用以下代码更改标签文本: class ViewController: UIViewController { @IBAction func buttontobepressed(_sender: Any) { displayMessage.text?="button pressed" } @IBOutlet weak var displayMessage: UILabel! 当我尝试运行它时,它会给我一个异常: $ibc++abi
class ViewController: UIViewController {
@IBAction func buttontobepressed(_sender: Any)
{
displayMessage.text?="button pressed"
}
@IBOutlet weak var displayMessage: UILabel!
当我尝试运行它时,它会给我一个异常:
$ibc++abi.dylib:以NSException类型的未捕获异常终止$
完整日志:
2017-06-10 12:07:14.672 blabby[4334:781388]-[blabby.ViewController按钮被按下:]:未识别的选择器发送到实例0x7bf54fe0 2017-06-10 12:07:14.679 blabby[4334:781388]*由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'-[blabby.ViewController按钮被按下:]:发送到实例0x7bf54fe0'libc++abi.dylib的选择器无法识别:以NSException(lldb)类型的未捕获异常终止**
在动作方法中使用
Any
类的正确方法是在执行动作时始终检查相应的类,请参见下文
@IBAction func buttontobepressed(_ sender: Any){
// checking if sender is as object of UIButton class
if sender is UIButton{
self.displayMessage.text = "button pressed"
}
}
注意:要正确使用程序中的任何UI组件,包括
UILabel
,必须在声明后使用脚本连接其IBOutlet
,否则会出现运行时错误。删除?
属性后的文本
像displayMessage.text=“按下按钮”
'NSInvalidArgumentException'是错误消息,显示…未捕获的异常。您的标签插座是否已连接?同时添加完整错误**2017-06-10 12:07:14.672 blabby[4334:781388]-[blabby.ViewController Buttobepressed:]:未识别的选择器发送到实例0x7bf54fe0 2017-06-10 12:07:14.679 blabby[4334:781388]***由于未捕获异常“NSInvalidArgumentException”而终止应用程序,原因:'-[blabby.ViewController按钮被按下:]:发送到实例0x7bf54fe0的无法识别的选择器'libc++abi.dylib:由于NSException(lldb)类型的未捕获异常而终止**添加代码< > > <代码>和<代码>发件人< /代码>,如<代码>按钮>(发件人:任何) @ Mozahler,谢谢您的观点,但是我们考虑到OP的一些明显的先验知识。