我使用key / value方法将整数保存到NSUserDefaults。我在交换机中有30种不同的情况,每种情况都会将整数值保存到特定的密钥。我为每个正在保存的整数创建了一个方法。下面是一些代码来解释:
-(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
}
有什么更有效的方法可以做到这一点所以不会有那么多行代码?
答案 0 :(得分:3)
IntegerX
形式的所有键都是?如果是这样,那么:
- (void)saveInteger:(NSInteger)value {
NSString *key = [NSString stringWithFormat:@"Integer%d", value];
[[NSUserDefaults standardUserDefaults] setInteger:value forKey:key];
}
[self saveInteger:newInteger];
不需要switch
声明。