当在swift 3中存储一个值时,我如何首先检查是否已经存储了相同的forKey?

时间:2017-08-24 01:01:29

标签: swift nsuserdefaults

如果我想在xcode中的swift应用程序中本地存储一个值,如下所示:

   let name = "john doe"
   UserDefaults.standard.set(name , forKey: "User Name")

我如何测试是否已经保存在该密钥下面以避免两次保存相同的东西或在同一个密钥下保存两件东西?有一个.doesExist类型的功能就像ares .isEmpty?

2 个答案:

答案 0 :(得分:0)

您可以使用object(forKey:)来确定是否为给定密钥存储了任何值 - 如果没有为该密钥存储对象,它将返回nil

如果您使用任何set函数,则替换该键的当前值(如果有)。在一个密钥下保存两个东西是不可能的。

答案 1 :(得分:0)

您可以检查是否从未在特定键中定义。

let newUserName = "john doe"
//check if already stored
if  let oldUsername = UserDefaults.standard.object(forKey: "User_Name") 
{
   //set new value of "User_Name" here
   print("\(oldUsername)")
} else {
   // set value of "User_Name" here
   UserDefaults.standard.set(newUserName , forKey: "User_Name")
}