+(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的错误吗? 如何摆脱这个问题
提前谢谢
答案 0 :(得分:0)
当Objective-C和Xcode-6与UserDefaults一起使用时,根据我对NSUserDefaults的体验,您需要非常小心保存和检索数据的方式:
我保存这样的数据:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"data" forKey:@"key"];
[prefs synchronize];
我检索这样的数据:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *theString = [prefs stringForKey:@"key"];
我在检索数据时也看到[默认同步],我认为没有必要,因为你没有保存数据,祝你好运。