NSUserDefaults使用NSInteger注册默认值

时间:2012-04-25 11:56:31

标签: ios nsuserdefaults nsinteger

我正在使用NSUserDefaults为我的应用程序存储一些整数设置,但我想使用以下代码注册这些设置的默认值:

NSDictionary *appDefaults = [[NSDictionary alloc] initWithObjectsAndKeys:(NSInteger)0, @"PMChordColour", (NSInteger)1, @"PMTextColour", (NSInteger)0, @"PMBackgroundColour", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];

使用

在我的应用中读取值
NSInteger setColour = [[NSUserDefaults standardUserDefaults] integerForKey:@"PMChordColour"];

这个问题是NSDictionary不允许存储标量值。

是否有任何方法可以注册允许存储整数的默认值?我意识到我可以使用NSNumber,但这似乎是不必要的开销。

2 个答案:

答案 0 :(得分:4)

不,你必须使用NSNumber。这是必要的开销。

答案 1 :(得分:1)

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:13], @"id", nil];
int integer = [[dict objectForKey:@"id"] intValue];