我正在实现UserDefault
字符串值! = nil or !=""
但我的验证不起作用。我该如何解决这个问题?
if((UserDefaults.standard.string(forKey: "name")) != nil || UserDefaults.standard.string(forKey: "name") != "") {
self.items.insert(UserDefaults.standard.string(forKey: "name") ?? "", at: 5) // Always reaching here....
}
通过可选的解包检查密钥是否有值。然后检查它是否不为空。然后将其插入数组。
if let value = UserDefaults.standard.string(forKey: "name"), !value.isEmpty {
items.insert(value, at: 5)
}
在您的情况下,每次执行if
的原因是因为您使用的是OR(||
( 而不是AND(&&
(。因此,即使UserDefaults
中没有键的值,第二个条件也为真。
PS:在 5 点调用insert
之前,请确保数组至少有 6 个项目。