我有我的用户名,我将它设置在 UserDefault 中,我这样调用它..
let firstName = UserDefaults.standard.object(forKey: "firstName")
然后我有一个字符串数组,我想将用户的名字添加到其中..
var arrayOfTitle = ["HEY", "FIND EVENTS CLOSE TO YOU", "BOOK"]
我已经尝试过我认为它应该是这样的
var arrayOfTitle = ["HEY \(firstName)", "FIND EVENTS CLOSE TO YOU", "BOOK"]
但这不起作用。
谁能插入我或示范让我朝着正确的方向前进。
谢谢!
最佳答案
UserDefaults.string(forKey:)
使用 UserDefaults.string(forKey:)
而不是 UserDefaults.object(forKey:)
.
let firstName = UserDefaults.standard.string(forKey: "firstName") ?? "YOU"
var arrayOfTitle = ["HEY \(firstName)", "FIND EVENTS CLOSE TO YOU", "BOOK"]
UserDefaults.standard.object(forKey:)
返回 Any?
您必须将其解包并转换为字符串。 UserDefaults.standard.string(forKey:)
将结果转换为 String?
这可以简化您的代码。
零合并运算符,??
, 打开 String?
如果它包含一个值,则返回结果,如果结果为 nil
,则返回默认值“YOU” .没有 ??
运算符,如果没有为“firstName”存储的 UserDefault,它将返回 nil
导致“嘿,零”。
可选绑定(bind)
您可以使用可选绑定(bind) UserDefaults.string(forKey:)
如果您想在值存在与否时有条件地运行代码。
if let firstName = UserDefaults.standard.string(forKey: "firstName") {
print("\(firstName)")
}
关于arrays - 将 UserDefaults 中的字符串添加到已创建的数组 Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42113836/