Ios 如何修复:“;表达式是不明确的;。
我正在尝试创建一个应用程序,可以帮助您计算商品的销售税。当然,该应用程序需要乘法运算,但我一直遇到错误: “表达式类型不明确,没有更多上下文” 你能帮我吗?我是斯威夫特的新手,所以也试着解释一下为什么我不正确。这是我目前的代码:Ios 如何修复:“;表达式是不明确的;。,ios,swift,Ios,Swift,我正在尝试创建一个应用程序,可以帮助您计算商品的销售税。当然,该应用程序需要乘法运算,但我一直遇到错误: “表达式类型不明确,没有更多上下文” 你能帮我吗?我是斯威夫特的新手,所以也试着解释一下为什么我不正确。这是我目前的代码: import UIKit class ViewController: UIViewController { @IBOutlet weak var Item: UITextField! @IBOutlet weak var Tax: UITextFiel
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var Item: UITextField!
@IBOutlet weak var Tax: UITextField!
@IBOutlet weak var Answer: UITextField!
@IBAction func Calculate(_ sender: Any) {
let a = Item.text
let conversionRate = Tax
let b = Int(a!)! * conversionRate
Answer.text = ("\(b)")
}
}
谢谢 您的主要问题是试图将
Int
和UITextField
相乘
您试图从Item.text
创建Int
,但没有类似的尝试将Tax.text
转换为数字
您的代码还存在许多其他问题。您正在使用代码>操作员太多,您的应用程序将因此崩溃
您的命名约定需要改进。变量和方法应以小写字母开头
以下是您应该编写的代码:
class ViewController: UIViewController {
@IBOutlet weak var item: UITextField!
@IBOutlet weak var tax: UITextField!
@IBOutlet weak var answer: UITextField!
@IBAction func calculate(_ sender: Any) {
if let itemStr = item.text, let taxStr = tax.text, let itemVal = Int(itemStr), let taxVal = Int(taxStr) {
let result = itemVal * texVal
answer.text = "\(result)"
} else {
answer.text = "Invalid values"
}
}
}
您正在尝试将UITextField类型的变量与Int类型的变量相乘。请尝试以下操作:
class ViewController: UIViewController {
@IBOutlet weak var Item: UITextField!
@IBOutlet weak var Tax: UITextField!
@IBOutlet weak var Answer: UITextField!
@IBAction func Calculate(_ sender: Any) {
guard let a = Int(Item.text ?? "0") else { return }
guard let conversionRate = Int(Tax.text ?? "0") else { return }
let b = a * conversionRate
Answer.text = ("\(b)")
}
}
conversionRate
属于UITextField
类型,如果您试图将其乘以Int
,则需要将conversionRate
转换为Int
,然后在乘法中使用它。