我正在使用此代码获取设备本地货币符号。
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]; 但地区并没有改变。当我返回上一个屏幕并再次进入同一屏幕时,该区域正在更新。任何人都可以帮忙解决这个问题吗?谢谢。