Ios 有效地将密钥/值保存到多个密钥
我正在使用键/值方法将整数保存为默认值。我在一个开关中有30种不同的情况,每种情况都将一个整数值保存到一个特定的键。我为保存的每个整数创建了一个方法。下面是一些代码来解释:Ios 有效地将密钥/值保存到多个密钥,ios,objective-c,cocoa-touch,key-value,Ios,Objective C,Cocoa Touch,Key Value,我正在使用键/值方法将整数保存为默认值。我在一个开关中有30种不同的情况,每种情况都将一个整数值保存到一个特定的键。我为保存的每个整数创建了一个方法。下面是一些代码来解释: -(void) saveInteger1:(NSInteger)int1 { [[NSUserDefaults standardUserDefaults] setInteger:int1 forKey:@"Integer1"]; } -(void) saveInteger2:(NSInteger)int2 {
-(void) saveInteger1:(NSInteger)int1 {
[[NSUserDefaults standardUserDefaults] setInteger:int1 forKey:@"Integer1"];
}
-(void) saveInteger2:(NSInteger)int2 {
[[NSUserDefaults standardUserDefaults] setInteger:int2 forKey:@"Integer2"];
}
-(void) saveInteger3:(NSInteger)int3 {
[[NSUserDefaults standardUserDefaults] setInteger:int3 forKey:@"Integer3"];
}
//And I got from 1-30 of these methods
switch (newInteger) {
case 1:
[self saveInteger1:newInteger];
break;
case 2:
[self saveInteger2:newInteger];
break;
case 3:
[self saveInteger3:newInteger];
break;
//And from 1-30 cases
}
有什么更有效的方法可以避免这么多的代码行呢?所有的键都是
IntegerX
?如果是,则应:
- (void)saveInteger:(NSInteger)value {
NSString *key = [NSString stringWithFormat:@"Integer%d", value];
[[NSUserDefaults standardUserDefaults] setInteger:value forKey:key];
}
[self saveInteger:newInteger];
不需要任何
开关
语句。表单的所有键都是IntegerX
?如果是,则应:
- (void)saveInteger:(NSInteger)value {
NSString *key = [NSString stringWithFormat:@"Integer%d", value];
[[NSUserDefaults standardUserDefaults] setInteger:value forKey:key];
}
[self saveInteger:newInteger];
不需要
switch
语句。答案为Ok,但这不是必需的。如果每个键可能只包含一个可能的值,为什么要使用N个键呢?@RamyAlZuhouri阅读了这个问题。他想要不同的钥匙。我知道他想要不同的钥匙,我是说他不需要。他的键值对是@“Integer1”:1、@“Integer2”:2、@“Integer3”:3;为什么?@RamyAlZuhouri原始代码的目标不清楚。但是如果没有来自OP的进一步信息,很难确定什么是真正合适的。谢谢!这正是我要找的!接受并投票!答案是可以的,但这不是必需的。如果每个键可能只包含一个可能的值,为什么要使用N个键呢?@RamyAlZuhouri阅读了这个问题。他想要不同的钥匙。我知道他想要不同的钥匙,我是说他不需要。他的键值对是@“Integer1”:1、@“Integer2”:2、@“Integer3”:3;为什么?@RamyAlZuhouri原始代码的目标不清楚。但是如果没有来自OP的进一步信息,很难确定什么是真正合适的。谢谢!这正是我要找的!接受并投票!所以我想你的代码片段只是一个例子,因为如果你真的像你写的那样,用默认值@“Integer1”:1、@“Integer2”:2等等是完全没有用的。是的,这和我使用的代码不完全一样。所以我想你的代码片段只是一个例子,因为如果你真的像你写的那样,将默认值设置为@“Integer1”:1、@“Integer2”:2等等是完全没有用的。是的,这与我使用的代码不完全一样。。