2013-07-08 128 views
38

我想打印所有通過NSUserDefaults保存的值,而無需提供特定的密鑰。有沒有辦法在NSUserDefaults中獲取所有值?

類似於使用for循環打印數組中的所有值。有沒有辦法做到這一點?

+1

在您的應用程序的域或系統域中? – awiebe

+7

http://stackoverflow.com/questions/1676938/easy-way-to-see-saved-nsuserdefaults – stosha

+1

對於Swift,你可以使用這個http://stackoverflow.com/a/27534573/1497737 – footyapps27

回答

135

目標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

Swift 3所有值: print(UserDefaults.standard.dictionaryRepresentation()。values)所有鍵:print(UserDefaults.standard.dictionaryRepresentation()。鍵) – davidrynn

3

只打印鍵

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

鍵和值

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

可以使用記錄所有提供給您的應用程序的內容:

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

您可以使用:

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

很容易理解 –

相關問題