https://github.com/dreamengine/DEUserDefaults
您可以这样做
NSString *value = DEUserDefaults[@"key"];
DEUserDefaults[@"key"] = @"value";
[DEUserDefaults synchronize];
而不是这样做
NSString *value = [[NSUserDefaults standardUserDefaults] objectForKey:@"key"];
[[NSUserDefaults standardUserDefaults] setObject:@"value" forKey:@"key"];
[[NSUserDefaults standardUserDefaults] synchronize];
DEUserDefaults
让您无需烦恼处理 NSUserDefaults
。只需像使用字典一样使用键的索引即可,无需考虑 -standardUserDefaults
或 -objectForKey:
/-setObject:forKey:
.
要从用户默认值获取/设置值,只需像使用字典一样使用键的索引即可。
#import "DEUserDefaults.h"
...
-(void)someMethod {
NSString *someString = DEUserDefaults[@"some_string_key"];
NSArray *someArray = DEUserDefaults[@"some_array_key"];
DEUserDefaults[@"number_key"] = @(42);
[DEUserDefaults synchronize]; // easy to save, too
}
技术上,DEUserDefaults
是对 [NSUserDefaults standardUserDefaults]
的引用,并混合了一个处理键索引的 NSUserDefaults
分类。这意味着 DEUserDefaults
是一个 NSUserDefaults
实例,并且您可以使用它上的常规 NSUserDefaults
对象方法。
换句话说,DEUserDefaults
只是一个使 [NSUserDefaults standardUserDefaults]
更容易使用的语法糖。
-(void)someMethod {
NSDictionary *representation = DEUserDefaults.dictionaryRepresentation;
[DEUserDefaults registerDefaults:someDictionary];
NSArray *array = [DEUserDefaults arrayForKey:@"some_array_key"];
}