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
,然后在乘法中使用它。