【问题标题】:After deleting persistent data in NSUserDeafults, how do I reset my application在 NSUserDefaults 中删除持久数据后,如何重置我的应用程序
【发布时间】:2015-04-03 23:53:00
【问题描述】:

我有一堆 NSUserDefault 设置,在设置页面上我有一个调用此方法的“重置设置”按钮:

@IBAction func resetData(sender: AnyObject) {
    let appDomain : NSString = NSBundle.mainBundle().bundleIdentifier!
    NSUserDefaults.standardUserDefaults().removePersistentDomainForName(appDomain)
    println("Settings reset")
}

然后如何重置应用程序以“擦除”所有保存的数据并显示新的应用程序?

在此感谢您

【问题讨论】:

    标签: xcode swift nsuserdefaults reload setting


    【解决方案1】:

    请注意,用户默认值有一个名为 dictionaryRepresentation 的方法,该方法返回所有用户默认值,表示为字典。通过该字典擦除所有数据循环并删除每个键的对象

    var userDefaults =  NSUserDefaults.standardUserDefaults().dictionaryRepresentation()
    
    for (key,value) in userDefaults{
    
        NSUserDefaults.standardUserDefaults().removeObjectForKey(key as String)
    
    }
    

    如果您需要在擦除数据后刷新 UI,请考虑创建一个方法,在该方法中根据用户默认设置您的视图状态,即使任何键值为 nil,然后在加载视图或按下重置按钮时调用此方法

    【讨论】:

    • 感谢您的回复。你的代码比我提供的 resetData 函数更好吗?它在某种程度上更干净吗?
    猜你喜欢
    • 1970-01-01
    • 2016-10-13
    • 2012-02-18
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多