![](/img/trans.png)
[英]Swift and Firebase Error: Cannot convert value of type 'UITextField' to expected argument type '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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.