arrays - 将 UserDefaults 中的字符串添加到已创建的数组 Swift 3

标签 arrays swift nsuserdefaults

我有我的用户名,我将它设置在 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/

相关文章:

ios - iOS 中的用户对象位置 (swift)

ios - 在 Swift 中使用 NSUserDefaults 保存 NSMutableArray 返回 Nil

Javascript:如何从页面获取图像字节(无需重新下载)

javascript - 不使用 Eval 动态引用 Javascript 数组名称?

swift - 在 NSTableView 中展开行

ios - 如何将 CLCircularRegion 保存到 NSUserDefaults

c++ - 类中的动态数组和指针很难找到定义它们的正确方法

javascript - 解码 Javascript For 循环

ios - 加载 UIImage 并删除原始文件

swift - SceneKit 和 SpriteKit 结合在一起