【发布时间】:2014-12-03 09:40:49
【问题描述】:
我使用 NSDateFormatter 的实例来帮助在我的应用程序中显示日期字符串,但是在我将模拟器设置中的区域格式从“美国”更改为“英国”后,设置中的示例将日期显示为“5, 2014 年 1 月”,这证明改变是成功的。但是当我在模拟器中打开我的应用程序时,日期仍然是“2014 年 1 月 5 日”。 我使用以下代码检查我的应用程序中的语言环境:
NSLocale *locale = [NSLocale currentLocale];
NSString *currentLocale = [locale objectForKey:NSLocaleIdentifier];
NSLog(@"Current locale is %@", currentLocale);
它会记录:当前语言环境是 en_US。 似乎我的应用程序在模拟器设置中没有获得当前的语言环境。应该是我在模拟器设置中更改了语言环境,我的应用程序可以反映更改。有什么问题吗? 日期格式代码为
static NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateStyle = NSDateFormatterMediumStyle;
dateFormatter.timeStyle = NSDateFormatterNoStyle;
self.dateLabel.text = [dateFormatter stringFromDate:item.dateCreated];
我正在使用 iOS 模拟器 8.1 版、Xcode 6.1.1 版、iOS 8.1、SDK 8.1
dateFormatter 代码放在一个视图控制器的 viewWillAppear 方法中,更改区域格式后,创建新的视图控制器仍然呈现旧的语言环境。同样的结果甚至杀死了应用程序。我在表格视图中注册区域设置更改通知并刷新它。它可以反映语言环境的变化。无法理解其中的区别。
【问题讨论】:
标签: ios xcode internationalization simulator