有没有办法获取NSUserDefaults中的所有值?

时间:2013-07-08 08:41:42

标签: iphone ios objective-c ios6 nsuserdefaults

我想通过NSUserDefaults打印我保存的所有值,而不提供特定的密钥。

使用for循环打印数组中的所有值。有办法吗?

4 个答案:

答案 0 :(得分:171)

目标C

所有值:

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allValues]);

所有键:

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]);

所有键和值:

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

用于:

NSArray *keys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];

for(NSString* key in keys){
    // your code here
    NSLog(@"value: %@ forKey: %@",[[NSUserDefaults standardUserDefaults] valueForKey:key],key);
}

<强>夫特

所有值:

print(UserDefaults.standard.dictionaryRepresentation().values)

所有键:

print(UserDefaults.standard.dictionaryRepresentation().keys)

所有键和值:

print(UserDefaults.standard.dictionaryRepresentation())

答案 1 :(得分:6)

您可以使用:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *defaultAsDic = [defaults dictionaryRepresentation];
NSArray *keyArr = [defaultAsDic allKeys];
for (NSString *key in keyArr)
{
     NSLog(@"key [%@] => Value [%@]",key,[defaultAsDic valueForKey:key]);
}

答案 2 :(得分:4)

仅打印键

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]);

键和值

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

答案 3 :(得分:4)

您可以使用以下方式记录应用程序的所有可用内容:

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);