簡體   English   中英

Timer Countdown 使用字典檢索鍵值//“無法將 String 類型的值轉換為預期的參數類型 String”

[英]Timer Countdown using dictionary to retrieve key value // “cannot convert value of type String to expected argument type String”

我正在嘗試設置一個雞蛋計時器,並在按下按鈕時顯示倒計時。 如果按下“軟”,倒計時從 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
        }
    }
}

該行:

let hardness = [sender.currentTitle!]

錯了,您將 Objective-C 方法調用語法[object method...]與屬性語法object.property

Swift 看到的是一個表達式 sender.currentTitle sender.currentTitle! ,它訪問 Objective-C 屬性,在數組文字[... ]內,因此創建一個包含 1 個元素的數組- hardness的類型為[String] ,數組為String ,而不是您期望的String

刪除[ & ] HTH

錯誤截圖 1 -

在此處輸入圖像描述

修復截圖 2

只需添加@objc行號 21。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM