Ios UserDefaults.standard.string()返回nil

Ios UserDefaults.standard.string()返回nil,ios,swift,nsuserdefaults,Ios,Swift,Nsuserdefaults,我在Swift中“继承”了一个iOS Xcode项目。我以前从未用Swift或Xcode编程。我将项目从一个用户帐户复制到另一个用户帐户,并将其签入git repo 现在我想这(复制,权限?)可能是应用程序无法正确读取其设置的原因。因为UserDefaults.standard.string(forKey:“pref_Foo”)返回nil,尽管在设置中.Bundle的根.plist显然有一个pref_Foo标识符。 这个应用程序以前已经运行过了,所以我不知道这是怎么突然出现的。 因为我对XCod

我在Swift中“继承”了一个iOS Xcode项目。我以前从未用Swift或Xcode编程。我将项目从一个用户帐户复制到另一个用户帐户,并将其签入git repo

现在我想这(复制,权限?)可能是应用程序无法正确读取其设置的原因。因为
UserDefaults.standard.string(forKey:“pref_Foo”)
返回
nil
,尽管在
设置中.Bundle的
根.plist
显然有一个
pref_Foo
标识符。 这个应用程序以前已经运行过了,所以我不知道这是怎么突然出现的。 因为我对XCode不太熟悉,所以直到现在我所做的只是在应用程序中调试
UserDefaults.standard.string(forKey:“pref_Foo”)
nil

我如何处理这个问题? 谢谢大家!

编辑:这是我在
ViewController.swift中代码的一部分

 override func viewDidLoad() {
        super.viewDidLoad()
  loadSettings()


您应该使用下面的代码进行验证,首先删除应用程序,然后重新安装。然后使用,你就会成功

var UserStatus:String {
    get{
        return UserDefaults.standard.object(forKey: "pref_Foo") as? String ?? "0"
    }
    set(status){
        UserDefaults.standard.set(status, forKey: "pref_Foo")
        UserDefaults.standard.synchronize()
    }
}
代码的使用如下所示

if (UserStatus ==  "pref_Foo"){
    self.logoutSuccess()
} else {
    self.loginSuccess()
}
更新或设置值在一行代码中非常简单,如下所示

        UserStatus = "pref_Foo"

您应该使用下面的代码进行验证,首先删除应用程序,然后重新安装。然后使用,你就会成功

var UserStatus:String {
    get{
        return UserDefaults.standard.object(forKey: "pref_Foo") as? String ?? "0"
    }
    set(status){
        UserDefaults.standard.set(status, forKey: "pref_Foo")
        UserDefaults.standard.synchronize()
    }
}
代码的使用如下所示

if (UserStatus ==  "pref_Foo"){
    self.logoutSuccess()
} else {
    self.loginSuccess()
}
更新或设置值在一行代码中非常简单,如下所示

        UserStatus = "pref_Foo"

userdefaults数据存储在设备或模拟器的沙盒目录中,而不是代码中。我想,如果xcode无法读取plist文件,那么它就不会被编译到应用程序中。在10.3.2和10.3.3之间是否发生了任何可能对此产生影响的事情?默认情况下,沙盒路径是/Users/foo/Library/Developer/CoreSimulator/Devices/xxxx/data/Containers/data/Application/xxxx,这是一种用户数据。请将详细的错误信息粘贴到此处,无论它是什么类型。但是,缺少的userdefaults不会在任何时候破坏您的构建。userdefaults数据存储在设备或模拟器的沙盒目录中,不是在你的代码中。我想,如果xcode无法读取plist文件,那么它可能不会被编译到应用程序中。在10.3.2和10.3.3之间是否发生了任何可能对此产生影响的事情?默认情况下,沙盒路径是/Users/foo/Library/Developer/CoreSimulator/Devices/xxxx/data/Containers/data/Application/xxxx,这是一种用户数据。请将详细的错误信息粘贴到此处,无论它是什么类型。但是,缺少的userdefaults不会在任何时候破坏您的构建。