【发布时间】:2012-07-21 16:34:54
【问题描述】:
我正在使用此代码获取设备本地货币符号。
NSLocale *theLocale = [NSLocale currentLocale];
NSString *symbol = [theLocale objectForKey:NSLocaleCurrencySymbol];
NSLog(@"Symbol : %@",symbol);
NSString *code = [theLocale objectForKey:NSLocaleCurrencyCode];
NSLog(@"Code : %@",code);
当应用重新启动时货币符号发生变化,但当应用从后台运行时货币符号未更新。
- 在 iPhone 设置中,我更改了美国地区并启动了应用程序,货币符号显示“$”。
- 当我更改印度地区并从后台获取应用程序并调用相同的代码时,它再次显示“$”。货币符号未更新。当我回来并重新进入屏幕时,货币符号更新为印度符号。
在 appDelegate 中:
- (void)applicationWillEnterForeground:(UIApplication *)application:
[[NSNotificationCenter defaultCenter] postNotificationName:@"CurrencyUpdated" object:nil];
在 sampleViewController 中:viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadCurrencySymbol) name:@"CurrencyUpdated" object:nil];
在sampleViewController中:
-(void) reloadCurrencySymbol
{
NSLocale *theLocale = [NSLocale currentLocale];
NSString *symbol = [theLocale objectForKey:NSLocaleCurrencySymbol];
NSLog(@"Symbol : %@",symbol);
NSString *code = [theLocale objectForKey:NSLocaleCurrencyCode];
NSLog(@"Code : %@",code);
}
谁能帮忙解决这个问题?提前致谢。
编辑
我已经回忆起了 [self viewDidLoad];但地区并没有改变。当我返回上一个屏幕并再次进入同一屏幕时,该区域正在更新。任何人都可以帮忙解决这个问题吗?谢谢。
【问题讨论】:
标签: iphone ios currency regional-settings