Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 有效地将密钥/值保存到多个密钥_Ios_Objective C_Cocoa Touch_Key Value - Fatal编程技术网

Ios 有效地将密钥/值保存到多个密钥

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 {

我正在使用键/值方法将整数保存为默认值。我在一个开关中有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
}

有什么更有效的方法可以避免这么多的代码行呢?

所有的键都是
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等等是完全没有用的。是的,这与我使用的代码不完全一样。。