如何在Swift 4中添加两个Int? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Swift 4中添加两个Int? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我正在尝试创建一个应用程序,允许您在UserDefaults中保存一个数字,然后再添加到该数字。现在,我一直收到错误:

'二元运算符'+'不能应用于两个'Int?'操作数

谁能指出我正确的方向?

class FirstViewController: UIViewController {
    var totalHoursInt = 0
    var typeHoursInt = 0
    var savedHours = 0

    @IBOutlet weak var totalHours: UILabel!
    @IBOutlet weak var typeHours: UITextField!

    @IBAction func addButton(_ sender: Any) {
        totalHours.text = typeHours.text!
        UserDefaults.standard.set(typeHours.text, forKey: "savedHours")
        typeHours.text = ""

        var totalHoursInt = Int(totalHours.text!)
        var typeHoursInt = Int(typeHours.text!)

        print(totalHoursInt + typeHoursInt)
    }

    override func viewDidAppear(_ animated: Bool) {
        if let x = UserDefaults.standard.object(forKey: "savedHours") as? String {
            totalHours.text = x
        }
    }
}
答案

带有String参数的Int()不返回Int值,而是Int可选。这是因为String to Int转换可能失败,在这种情况下转换返回nil。并且+运算符根本没有为期权定义。

要解决您的问题,您需要确保返回的值不是n,使用如下结构:

if let totalHours = totalHoursInt, let typeHours = typeHoursInt {
    print(totalHours + typeHours)
}

if let ...仅在右侧非零时才分配值,因此变量从选项转换为非选项。 (你在viewDidAppear中使用它。)之后,+运算符将起作用。

以上是关于如何在Swift 4中添加两个Int? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何解析像“14px”这样的字符串以在 Swift 中获取 Int 值 14 [重复]

如何在swift中获取变量的类型[重复]

如何在 Swift 4 中替换整个字符串或部分字符串 [重复]

如何从 Swift 中的 UIColor 获取 RGB 代码(INT)[重复]

在 Swift 中重复字符串

如何在Swift 5中对[int:String]的字典进行排序[重复]