我的应用关闭后保存变量(快速)

时间:2015-08-10 15:22:24

标签: ios xcode swift variables nsuserdefaults

我正在尝试在Xcode中保存一个变量,以便即使在应用程序关闭后也可以保存,但是当我访问它时,我从几个不同的类和文件中执行它,并且我在更改变量的值时我访问它。因此类似的线程不完全适用,要存储的值是一个字符串,这是我到目前为止的代码:

var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(Token, forKey: "") as! String

我相信这是正确的格式,但我不知道如何调用它来更改它,因为当我尝试时会收到一条错误消息,说明预期的声明。

无论如何,我们非常感谢任何帮助。

4 个答案:

答案 0 :(得分:14)

首先,您必须指定一个唯一键来存储变量(在示例MyKey中)。

AppDelegate > applicationDidFinishLaunching中注册具有默认值的密钥 好处是您可以使用非可选变量,并且您具有已定义的默认值。

let defaults = UserDefaults.standard
let defaultValue = ["MyKey" : ""]
defaults.register(defaults: defaultValue)

现在你可以从各处读取密钥的值

let defaults = UserDefaults.standard
let token = defaults.string(forKey: "MyKey")

并保存

let defaults = UserDefaults.standard
defaults.set(token, forKey: "MyKey")

答案 1 :(得分:5)

Swift 3

(感谢vadian')

AppDelegate > applicationDidFinishLaunching

    let defaults = UserDefaults.standard
    let defaultValue = ["myKey" : ""]
    defaults.register(defaults: defaultValue)

保存密钥:

let defaults = UserDefaults.standard
defaults.set("someVariableOrString", forKey: "myKey")
defaults.synchronize()

阅读密钥:

    let defaults = UserDefaults.standard
    let token = defaults.string(forKey: "myKey")

答案 2 :(得分:4)

我们假设您有一个名为token

的字符串变量

保存/更新设备上存储的值:

NSUserDefaults.standardUserDefaults().setObject(token, forKey: "mytoken")
NSUserDefaults.standardUserDefaults().synchronize()

在上面的代码中,我确保给键一个值(" mytoken")。这样我们以后才能找到它。

要从设备读取存储的值:

let token = NSUserDefaults.standardUserDefaults().objectForKey("mytoken") as? String

由于方法objectForKey会返回一个可选的AnyObject,我确保将其投放到可选的String(可选意味着它是零或者有价值)。

答案 3 :(得分:-4)

设置值后添加default.synchronize()