有没有办法操纵 NSUserDefaults 存储的信息

Posted

技术标签:

【中文标题】有没有办法操纵 NSUserDefaults 存储的信息【英文标题】:Is there a way to manipulate NSUserDefaults stored information 【发布时间】:2015-11-05 23:07:00 【问题描述】:

我已将字典存储到 NSUserDefaults 中,如下所示:

standardDefaults.setObject(switchStater, forKey: "startUp") switchStater 对象是存储每个UISwitchrowIndexBool 值的字典。我可以像这样打印出存储在NSUserDefaults 中的信息:

let test = standardDefaults.objectForKey("startUp")
        print(test)

这是我确认数据已正确存储的方式。我将.setObject 放在UITableViewController 的子类中,因为子类在操作它们时会写入UISwitch。然后我在超类的viewDidLoad 中调用.objectForKey

有没有办法测试使用for init 循环存储的NSUserDefault,如果没有,我该如何测试测试以使UISwitch 处于用户重新加载应用程序后留下的位置?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

您可以使用userDefaults.dictionaryForKey("startUp")NSUserDefaults 中检索存储的Dictionary,然后循环遍历字典中的键/值并像这样适当地设置UISwitch

let dictionary = userDefaults.dictionaryForKey("startUp")!

for (key, value): (String, AnyObject) in dictionary 
    let switch = value as! UISwitch
    print(key)
    print(switch.on)

【讨论】:

谢谢大家。这是我一直在寻找的缺失链接。

以上是关于有没有办法操纵 NSUserDefaults 存储的信息的主要内容,如果未能解决你的问题,请参考以下文章

数组使用NSUserDefaults存储的问题,

操纵SVN历史记录

在 iOS 上存储身份验证令牌 - NSUserDefaults 与钥匙串?

将转换保存到 NSUserDefaults?

NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象

iOS 8,9 上的 NSUserDefaults 有多安全?