我的用户名是第一名,我已将其设置为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"]
但这不起作用。
是否有人能够推动我或示范让我朝着正确的方向前进。
谢谢!
答案 0 :(得分:1)
使用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?
,这可以简化您的代码。
nil-coalescing运算符??
如果包含值,则展开String?
结果,如果结果为nil
,则返回默认值“YOU”。如果没有??
运算符,如果没有为“firstName”存储UserDefault,它将返回nil
,结果为“HEY nil”。
如果您想要在值存在或不存在的情况下有条件地运行代码,则可以对UserDefaults.string(forKey:)
使用可选绑定。
if let firstName = UserDefaults.standard.string(forKey: "firstName") {
print("\(firstName)")
}
答案 1 :(得分:0)
if let name = UserDefaults.standard.object(forKey: "firstName") as? String{
arrayOfTitle.append(name)
}