将 UserDefaults 中的字符串添加到已创建的数组中 Swift 3
Adding a string from UserDefaults into an already made array Swift 3
我有我的用户名字,我已经在 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:)
instead of 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:)
returns Any?
您必须将其解包并转换为字符串。 UserDefaults.standard.string(forKey:)
将结果转换为 String?
可以简化您的代码。
nil-coalescing 运算符 ??
解包 String?
结果(如果它包含一个值),或者 returns 默认值 "YOU" 如果结果是 nil
。如果没有 ??
运算符,如果没有为 "firstName" 存储的 UserDefault,它将 return nil
导致 "HEY nil".
可选绑定
如果您想有条件地 运行 编码一个值是否存在,您可以使用 UserDefaults.string(forKey:)
的可选绑定。
if let firstName = UserDefaults.standard.string(forKey: "firstName") {
print("\(firstName)")
}
if let name = UserDefaults.standard.object(forKey: "firstName") as? String{
arrayOfTitle.append(name)
}
我有我的用户名字,我已经在 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:)
instead of 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:)
returns Any?
您必须将其解包并转换为字符串。 UserDefaults.standard.string(forKey:)
将结果转换为 String?
可以简化您的代码。
nil-coalescing 运算符 ??
解包 String?
结果(如果它包含一个值),或者 returns 默认值 "YOU" 如果结果是 nil
。如果没有 ??
运算符,如果没有为 "firstName" 存储的 UserDefault,它将 return nil
导致 "HEY nil".
可选绑定
如果您想有条件地 运行 编码一个值是否存在,您可以使用 UserDefaults.string(forKey:)
的可选绑定。
if let firstName = UserDefaults.standard.string(forKey: "firstName") {
print("\(firstName)")
}
if let name = UserDefaults.standard.object(forKey: "firstName") as? String{
arrayOfTitle.append(name)
}