我正在尝试询问患者的年龄并检查他/她是否已成年。但是,它总是返回 false(参数总是小于 18)!! 这是代码:
var index = 0
let patAge = Double(txtAge.text!)
if (txtAge.text?.characters.count == 0){
index = 0
while index < medicationMenuItems.count{
medicationMenuItems[index].medicationName = medicationNames[index]
index += 1
}
} else {
if (patAge?.isLess(than: 18))!{
index = 0
while index < medicationMenuItems.count{
medicationMenuItems[index].medicationName = medicationNames[index] + ": Adult?"
index += 1
}
}
}
tableViewMedications.reloadData()
通常:如何将文本读入 double ?以及如何将计算转换为字符串? 我也在尝试在文本字段中设置文本,但它要么返回错误,要么返回“可选(TextGoesHere)”,它应该只提供“TextGoesHere”:
let temporaryString = String(doubleValue)
txtAge.text = temporaryString
它返回一个错误,我应该给 "String(describing: doubleValue)!!!
有什么想法吗??
最佳答案
有一条评论是,我不确定您将“年龄”转换为 double 的意图是什么。这几乎肯定是一个整数。
how can I read text into doubles?
这有效。
var ageText = "17"
var ageAsDouble = Double(ageText)
但如果您将年龄作为一个整数来处理,您可能真的想要这个:
let minimumAge = 18
var ageText = 17
var age = Int(age)
if (age! < minimumAge) {
print("must be older than 18!")
}
And how can I convert calculations to strings??
这有效。
var str = String(ageAsDouble!)
print("printing string value", str)
我绝不是一个敏捷的专家,但您需要了解的是,当涉及可选值时,该值可能存在也可能不存在。例如,如果您尝试将字符串“32f”传递给 Double init,则无法创建 Double。所以如果你这样做:
var ageText = "32f"
var age = Double(ageText)
then do..
print(age!)
肯定会报错,这是因为值为nil。强制可选解包告诉程序“解包这个值,因为我 100% 确定它不是零!”
关于ios - 无法从 UITextField 读取 XCode 8 中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43009590/