0

我正在尝试设置一个鸡蛋计时器,并在按下按钮时显示倒计时。如果按下“软”,倒计时从 300 秒开始,依此类推。

但是,此消息不断出现“无法将字符串类型的值转换为预期的参数类型字符串”。我该怎么办?

鸡蛋定时器代码

这是代码:

import UIKit

class ViewController: UIViewController {

    let eggTimer = ["Soft" : 300, "Medium" : 420, " Hard" : 720]
    var secondsRemaining = 60

    @IBAction func hardnessPressed(_ sender: UIButton) {

        let hardness = [sender.currentTitle!]

        secondsRemaining = eggTimer[hardness]!
        Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true)
    }

    @objc func updateTimer() {
        if secondsRemaining > 0 {
            print(" \(secondsRemaining) second")
            secondsRemaining -= 1
        }
    }
}
4

2 回答 2

0

该行:

let hardness = [sender.currentTitle!]

错了,您将 Objective-C 方法调用语法[object method...]与属性语法混为一谈object.property

Swift 看到的是一个表达式sender.currentTitle!,它在一个数组字面量内访问一个 Objective-C 属性,[ ... ]因此创建了一个包含 1 个元素的数组—— <code>hardness 有 type [String]、 array of String,而不是String你所期望的。

删除[& ]。高温高压

于 2020-05-18T02:50:26.960 回答
0

错误截图 1 -

在此处输入图像描述

修复截图 2

只需添加@objc行号 21。

在此处输入图像描述

于 2021-07-16T18:42:28.173 回答