2011-05-16 3 views
0
defs = [NSUserDefaults standardUserDefaults]; 
languages=[[NSMutableArray alloc]init]; 
languages= [defs objectForKey:@"AppleLanguages"]; 
NSString* preferredLang = [languages objectAtIndex:14]; 
NSString *[email protected]"zh-Hans"; 
NSString *[email protected]"en"; 
[languages replaceObjectAtIndex:0 withObject:chn]; 
[languages replaceObjectAtIndex:14 withObject:eng]; 
defs=(NSUserDefaults*)languages; 

그리고 NSUserDefaults 정의 내용을 변경할 수 있습니다. 하지만 applelanguage에는 영향을 미치지 않습니다. 누구든지 나를 도울 수 있습니까? defs의 첫 번째 객체를 현재 언어로 저장해야합니다.현재 언어를 변경하는 방법?

+1

나는 당신의 문제에 대한 답을 모르지만'languages ​​= [[NSMutableArray alloc] init];'을 제거해야한다. 바로 밑 줄에 그것을 덮어 쓴 것처럼 메모리 누출이다. – jv42

+0

Wat시겠습니까? 귀하의 문제에 대한 다른 해결책이 될 수 있습니다. –

+0

사실 defs에서 나는 중국어를 간체로 바꾼다. 그런 다음 중국어 언어를 현재 언어로 추가하여 키보드 언어를 변경하려고한다. pls는 나를 도울 수 –

답변

0

당신은 아마이

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSMutableArray *languages = [defaults objectForKey:@"AppleLanguages"]; 

languages = [[languages mutableCopy] autorelease]; 

[languages replaceObjectAtIndex:0 withObject:@"zh-Hans"]; 
[languages replaceObjectAtIndex:14 withObject:@"en"] 
[defaults setObject:languages forKey:@"AppleLanguages"]; 

을하려고하지만 당신은 당신이 사용자의 언어를 부과 하시겠습니까? 그는 항상 설정 응용 프로그램을 통해 언어를 변경할 수 있습니다.

또한 현지화 된 문자열을 올바르게 설정해야합니다. 아직 this 문서를 검토해야합니다.

+1

mutableList의 복사본을 기본으로두기 전에 그럴 필요가 없습니다. – Eiko

+0

내 앱에서 여러 언어를 사용할 수있는 방법을 알려주세요. –

+0

@Eiko 당신이 옳았습니다. 둘 다'복사'는 불필요했다. –

1

사용자의 현재 언어를 설정하려는 것처럼 보입니다.

iOS SDK에서는 지원되지 않습니다. 사용자는 설정에서 자신을해야합니다.

이 작업을 수행하려는 동기를 설명하면 아마도 해결책을 제시 할 수 있습니다.

+0

thanxs, 실제로는 defs에서 나는 영어로 중국어를 간결하게 바꾼다. 그런 다음 중국어 언어를 현재 언어로 추가하여 키보드 언어를 변경하려고한다. pls 도와주세요 –

+0

PLs 내 애플 리케이션에서 여러 언어를 사용할 수있는 방법을 말해 줄 수 있습니까? –

0
NSMutableArray *languages= [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]; 
    NSString *[email protected]"zh-Hans"; 
    NSString *[email protected]"en"; 
    [languages replaceObjectAtIndex:0 withObject:chn]; 
    [languages replaceObjectAtIndex:14 withObject:eng]; 
    [[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 

    NSMutableArray *languagesAterChange= [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]; 
    NSLog(@"Lang:%@ | %@",[languagesAterChange objectAtIndex:0],[languagesAterChange objectAtIndex:14]); 

여기 있습니다.

관련 문제