0

キー/値方式を使用して整数を NSUserDefaults に保存しています。スイッチには 30 の異なるケースがあり、各ケースが整数値を特定のキーに保存するケースがあります。そして、保存される整数ごとに 1 つのメソッドを作成しました。説明するコードを次に示します。

-(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
}

コードの行数がそれほど多くならないように、これを行うためのより効果的な方法は何ですか?

4

1 に答える 1

3

フォームのすべてのキーはIntegerXですか? その場合は、次のようにします。

- (void)saveInteger:(NSInteger)value {
    NSString *key = [NSString stringWithFormat:@"Integer%d", value];
    [[NSUserDefaults standardUserDefaults] setInteger:value forKey:key];
}

[self saveInteger:newInteger];

switchステートメントは必要ありません。

于 2013-02-07T16:32:35.393 に答える