一尘不染

如何快速自动清除NSUserDefault值?

swift

如何nsuserdefault快速自动清除值?我已经尝试过了,但这对我不起作用…

[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];

阅读 239

收藏
2020-07-07

共1个答案

一尘不染

检查已经存储了多少个密钥

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys.array.count)

仅添加另一个键

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "justAnotherKey1")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "justAnotherKey2")

检查已再次存储了多少个密钥(+2)

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys.array.count)

现在创建一个循环以删除键的对象

for key in NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys {
    NSUserDefaults.standardUserDefaults().removeObjectForKey(key.description)
}

检查您又有多少把钥匙

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys.array.count)

更新: Xcode 7.2.1•Swift 2.1.1 (注意NSUserDefaults不再在操场上工作,因此需要在真实项目中进行测试)

print(Array(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys).count)

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "justAnotherKey1")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "justAnotherKey2")

print(Array(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys).count)

for key in Array(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys) {
    NSUserDefaults.standardUserDefaults().removeObjectForKey(key)
}

print(Array(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys).count)
2020-07-07