【问题标题】:UserDefaults.standard.Integer doesn't work with a Number (Swift 5)UserDefaults.standard.Integer 不适用于数字(Swift 5)
【发布时间】:2020-07-20 18:03:11
【问题描述】:

我在 UserDefaults 中保存一个计数并使用 viewDidAppear 加载它

保存在这里:

UserDefaults.standard.set(JSon.runways.count, forKey: "RunwaysCount")

并且在保存过程中通过 print() 函数检查数字是否正确。

然后在 viewDidAppear 我检查这个数字:

        if UserDefaults.standard.object(forKey: "RunwaysCount") == nil
        {
            self.viewRunway1.isHidden = true
            self.viewRunway2.isHidden = true

            print("Runways Count == nil")
        }
        else
        {
            let Number = UserDefaults.standard.integer(forKey: "RunwaysCount")
            print(Number)
            if Number == 1
            {
                self.viewRunway1.isHidden = false
                self.viewRunway2.isHidden = true

            }
            else if Number == 2
            {
                self.viewRunway1.isHidden = false
                self.viewRunway2.isHidden = false
            }
            else
            {
                print("Error checking number"
            }
        }

数字在我的控制台中打印为正确的数字,但它没有通过 Number == 函数,每次都通过 else 并打印“错误检查数字”

我将 xCode 11 与 Swift 5 一起使用。

【问题讨论】:

  • 请尝试删除派生数据并重新启动您的 Xcode。 Xcode -> 首选项 -> 位置 -> 转到派生数据并删除。
  • 请告诉控制台打印了什么?
  • 控制台打印正确,所以如果设置值为1或2,当视图出现时控制台打印1或2。但仍然通过else部分
  • 准确地说控制台行如下 - Line1: “1” Line2: “Error checks number” and same agin for 2 此外,nil 函数不起作用,因为当值为无

标签: swift xcode integer nsuserdefaults swift5


【解决方案1】:

设法用以下方法修复它:

    if let RunwayCount = UserDefaults.standard.object(forKey: "RunwaysCount") as? IntegerLiteralType
    {
        print(RunwayCount)
        if RunwayCount == 1
        {
            self.viewRunway1.isHidden = false
            self.viewRunway2.isHidden = true

            print("Working Integer 1")
        }
        if RunwayCount == 2
        {
            self.viewRunway1.isHidden = false
            self.viewRunway2.isHidden = false
            print("Working Integer 2")
        }
    }

我仍然不清楚为什么以前的方法不起作用,但这段代码修复了它。

【讨论】:

    猜你喜欢
    • 2019-12-10
    • 2020-03-29
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多