【发布时间】:2014-11-11 22:15:00
【问题描述】:
+(NSString *)languageKey{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *lang = [languages objectAtIndex:0];
if([lang isEqualToString:@"en"])
return @"en";
else if([lang isEqualToString:@"ar"])
return @"ar";
return @"en";
}
+(NSString *)localizedStringForKey:(NSString *)key{
NSString *path;
if([[self languageKey] isEqualToString:@"en"])
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
else if([[self languageKey] isEqualToString:@"ar"])
path = [[NSBundle mainBundle] pathForResource:@"ar" ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[languageBundle localizedStringForKey:key value:@"" table:nil];
return str;
}
有时我在 iOS7 及以下版本中得到错误的密钥,工作正常。这是 Xcode6.0 的错误吗? 如何摆脱这个问题
提前谢谢
【问题讨论】:
-
我们需要查看将所有内容存储在用户默认值中的代码。不过老实说,用户默认设置可能不是存储此类信息的正确位置
-
@JoelBell:感谢您的回复,我更新了代码
标签: iphone ios7 localization nsuserdefaults