我有以下情况:
if UserDefaults.standard.bool(forKey: "foo") == nil {
asyncRequest() { foo in
myMethod(foo)
}
} else {
myMethod(foo)
}
我基本上是在检查目前是否缓存了 foo
变量。如果没有,我从服务器获取它,但如果有,我直接调用该方法。
是否有更好的做法可以避免在此处使用 if-else 语句? (例如,允许我仅调用 myMethod(foo)
一次)
最佳答案
这似乎是正确的,请注意 bool(forKey:) 将始终返回 bool,而不是可选值。为此,您应该使用 value(forKey:)。你也可以做这样的事情
var foo: Bool? {
return UserDefaults.standard.value(forKey: "foo") as? Bool
}
func assignValue() {
guard let foo = foo else {
// your async call here
return
}
myMethod(foo)
}
关于ios - 基于缓存值可用性的运行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49468665/