如何解决“无法分配值”错误?

时间:2018-07-10 09:45:22

标签: ios swift

我只是在学习快速的基础知识,并认为尝试使用自己的技能会出现问题是一个好主意。我尽了我所能帮助的一切。我的图片如下。

enter image description here

5 个答案:

答案 0 :(得分:4)

首先请发布文字,而不是图片

您必须使用(IBOutlet)实例number而不是类型UIButton,并且必须使用正确的API

number.setTitle(String(score), for: .normal)

但是在IBAction中,我将使用静态sender类型(而不是未指定的Any)声明该方法并使用该方法

@IBAction func touched(_ sender : UIButton) {
    score += 1
    sender.setTitle(String(score), for: .normal)
}

答案 1 :(得分:0)

如果要更改按钮的标题,则需要执行以下操作:

  • button_Outlet_Name.setTitle(标题:字符串?,用于:UIControlState) 或
  • button_Outlet_Name.title.text =“新标题”

记住要在按钮OUTLET上执行此操作,而不要在UIButton类上执行此操作

答案 2 :(得分:0)

在这里,您正在访问UIButton类的静态方法。如果要设置标题,则需要在实例上进行设置。 根据您拥有的内容,可以在IBAction中将发送方强制转换为UIButton,然后设置标题。您还可以针对特定状态执行此操作,因为标题与UIButton的状态密切相关。

if let btn = sender as? UIButton {
    btn.setTitle(“\(score)”, forState: .normal)
}

您还可以改用IBOutlet参考。

number.setTitle(“\(score)”, forState: .normal)

每当在字符串中使用\(variable)时,它都会使用要在字符串中显示的变量的字符串值。

答案 3 :(得分:0)

您无法通过编写

那样更改按钮标题的方式。
UIButton.title = String(score)

这意味着您正在调用UIButton类的静态方法,该方法的名称为title

如果要更改按钮的外观,可以通过以下方式进行操作:

第1步:通过ctrl +拖动来获取按钮的引用。

第2步:在IBAction内,您需要写:

yourButton.setTitle("\(score)", for: .normal)

答案 4 :(得分:0)

我不确定您要做什么,但是如果您想更改单击按钮的标题,您可以这样做:

@IBAction func touched(_ sender: Any) {
    score += 1
    // check if the sender is UIButton
    if let button = sender as? UIButton {
        //change your button title
        button.setTitle("\(scroe)", for: UIControlState.normal)
    }
}