在swift中将类型转换为用户默认的Int()

时间:2017-09-16 05:50:12

标签: ios swift swift3

以下是设置价格为用户默认值(else if是对LoggedInUserSave的引用):

UserDefault

我需要将let currentValue = Int(sender.value) LblPriceValue.text = "\(currentValue)" Price = "0," + String(describing: currentValue) LoggedInUserSave.set(Price, forKey: "PriceFilter") 值用作price。我使用此代码将Int转换为price

int

在做这件事时获得零值。

1 个答案:

答案 0 :(得分:0)

我可以注意到,您的代码中存在多个异常(不包括错误使用过程的命名约定),此行(设置值时)描述var Price属于String

Price = "0," + String(describing: currentValue)

此处(在接收值时),您设置Priceinteger

现在解决问题请确保:

  • sender.value不是nil,只包含数字字符(否则输入效果不会成功)
  • 现在,在保存时,您将其设置为"0," + String(describing: currentValue),这使得string字面值无法再次转换为Int

这将是更合适的方式来实现您的目标:

    if let i = sender.value as? Int {
        self.lbl.text = "\(i)"
        UserDefaults.standard.set(i, forKey: "Key")
    }

_

    //..
    if let i : Int = UserDefaults.standard.integer(forKey: "Key") {
        //do what you want to do with stored value
    }