2013-02-07 5 views
0

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

그래서 코드 스 니펫은 예제 일뿐입니다. 글자 그대로 말하면 @ "Integer1": 1, @ "Integer2": 2 등의 기본값을 갖는 것은 완전히 쓸모가 없기 때문입니다. ... –

+0

그래, 이건 정확히 내가 사용했던 코드가 아니야. – Peter

답변

3

모든 키의 형태는 IntegerX입니까? 이 경우 다음을 수행하십시오

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

[self saveInteger:newInteger]; 

없음 switch 문이 필요합니다.

+0

대답은 알지만, 이럴 필요는 없다. 모든 키가 가능한 한 값을 가질 수 있다면 N 키를 사용하는 이유는 무엇입니까? –

+0

@RamyAlZuhouri 질문을 읽어보십시오. 그는 다른 열쇠를 원해. – rmaddy

+0

다른 키를 원한다는 것을 알고 있습니다. 나는 그가 필요하지 않다는 것을 말하고 있습니다. 그의 키 - 값 쌍은 @ "Integer1": 1, @ "Integer2": 2, @ "Integer3": 3; 왜 ? –

관련 문제