我迟疑地问这个问题,因为我知道这可能是个愚蠢的问题。
我正在返回一个领域的结果,然后继续尝试将其转换为一个字符串作为正常(放在一个文本标签)。
但是我得到一个错误'init' has been renamed to 'init(describing:)'
。
当我尝试使用描述方法时,标签会在里面打印"Optional"
,这显然不是我想要的。
我不能用的原因是什么
previousTimeLabel.text = String(lastRecord?.time)
我肯定我以前做过,很好,我错过了什么吗?(
lastRecord.time
是Int)。我在这里检查了关于插值Swift String Interpolation displaying optional?的答案,并尝试更改为以下内容:
if let previousRounds = String(lastRecord?.rounds) {
previousRoundsLabel.text = previousRounds
}
但得到相同的错误+
Initializer for conditional binding must have Optional type, not 'String'
最佳答案
问题不在于String(lastRecord?.time)
是Optional
。问题是lastRecord
是Optional
,所以必须打开lastRecord
,而不是返回值String(lastRecord?.time)
。
if let lastRecord = lastRecord {
previousRoundsLabel.text = "\(lastRecord.time)"
}