Ios UserDefaults.standard.string()返回nil
我在Swift中“继承”了一个iOS Xcode项目。我以前从未用Swift或Xcode编程。我将项目从一个用户帐户复制到另一个用户帐户,并将其签入git repo 现在我想这(复制,权限?)可能是应用程序无法正确读取其设置的原因。因为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
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不会在任何时候破坏您的构建。