首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UserDefaults.standard.string()返回nil

UserDefaults.standard.string()返回nil
EN

Stack Overflow用户
提问于 2017-08-25 16:42:33
回答 1查看 1.6K关注 0票数 1

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

现在我说了这个(复制,权限?)可能是导致应用程序无法正确读取其设置的原因。因为UserDefaults.standard.string(forKey: "pref_Foo")返回nil,尽管在Settings.Bundle's Root.plist中有一个明确的pref_Foo标识符。这个应用程序以前工作过,所以我不知道这是从哪里来的。因为我不太熟悉XCode,所以直到现在我所做的就是调试到应用程序中,以查看UserDefaults.standard.string(forKey: "pref_Foo")nil

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

编辑:这是我用ViewController.swift编写的代码的一部分

代码语言:javascript
复制
 override func viewDidLoad() {
        super.viewDidLoad()
  loadSettings()

..。

代码语言:javascript
复制
 }

func loadSettings()
{
  if(UserDefaults.standard.object(forKey: "pref_Foo") == nil)
  { 
   printf("Error")
  }
}
EN

回答 1

Stack Overflow用户

发布于 2017-08-25 17:15:16

你应该使用下面的代码进行验证,首先删除应用程序,然后再安装。然后使用,你将获得成功。

代码语言:javascript
复制
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()
    }
}

代码的用法如下。

代码语言:javascript
复制
if (UserStatus ==  "pref_Foo"){
    self.logoutSuccess()
} else {
    self.loginSuccess()
}

在下面给出的一行代码中,更新或设置值是如此简单。

代码语言:javascript
复制
        UserStatus = "pref_Foo"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45877572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档