Mar*_*Kim 1 label type-conversion ios swift
Swift 新手,我遇到了一个令人沮丧的问题。该程序正确编译并运行而不会崩溃。该程序应该根据用户输入的人类年数计算猫的年龄(以猫年为单位)。然而,按下按钮后,结果会显示“运算符”一词,并附加以括号分隔的猫年,即Optional(35)
。这是我的代码:
@IBOutlet weak var getHumanYears: UITextField!
@IBOutlet weak var displayCatYears: UILabel!
@IBAction func calculateCatYears(_ sender: Any)
{
if let humanYears = getHumanYears.text
{
var catYears: Int? = Int(humanYears)
catYears = catYears! * 7
let catYearsString: String = String(describing: catYears)
displayCatYears.text = "Your cat is " + catYearsString + " years old"
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道我做错了什么?感谢您的宝贵意见!
问题在这里:
String(describing: catYears)
Run Code Online (Sandbox Code Playgroud)
catYears
is an Optional<Int>
,一个描述 an 的字符串,Optional<Int>
格式为Optional(<value>)
or nil
。这就是为什么你得到Optional(35)
.
你需要解开catYears
!
String(describing: catYears!)
Run Code Online (Sandbox Code Playgroud)
或者,String(describing:)
一起删除并执行:
if let humanYearsText = getHumanYears.text, let humanYears = Int(humanYearsText)
{
let catYears = humanYears * 7
displayCatYears.text = "Your cat is \(catYears) years old"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
530 次 |
最近记录: |