【发布时间】:2017-10-25 14:33:08
【问题描述】:
我想通过从UserDefaults 中获取变量obj 来初始化它,它返回一个String?,如果是nil,则构建值并分配它。
以下代码有效,但最后,我的obj 是String?,而我希望它是String(因为在这个阶段它不能是nil)。
var obj = UserDefaults.standard.string(forKey: "my_key")// Here, obj is a String?
if obj == nil {
obj = ProcessInfo.processInfo.globallyUniqueString// Returns, a String
defaults.set(obj, forKey: "my_key")
defaults.synchronize()
}
// Here, obj is still a String?
这种情况有没有好的模式/最佳实践?
【问题讨论】:
-
仅供参考 - 有no need to call
synchronize。