【发布时间】: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