3

私は現在iPhoneアプリケーションで作業しており、NSLocaleを使用して現在の通貨記号を正常に機能させていますが、ホームボタンを押すと、アプリはバックグラウンドプロセスに移動し、通貨を変更します([設定]>>[国際]>>[地域形式]>>[米国のように]、インドなど...)このように、通貨記号が変更されていないバックグラウンドからそのアプリケーションを開きますが、別の画面に移動すると、通貨のみが変更された前の画面に移動しますが、バックグラウンドからアプリケーションを開いてから通貨が必要ですシンボルは自動的に変更されました。これを修正する方法は?あなたの助けが必要です

ありがとう

ここでコードを試しました:

NSLocale *theLocale = [NSLocale currentLocale];
Getdollarsymbol = [theLocale objectForKey:NSLocaleCurrencySymbol];
NSString *Code = [theLocale objectForKey:NSLocaleCurrencyCode];
4

2 に答える 2

9

このコードを試してください。そして、これが機能しているかどうかを教えてください、

-viewDidLoad:の追加:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshCurrencySymbol) name:NSCurrentLocaleDidChangeNotification object:nil];

それから:

-(void) refreshCurrencySymbol
{ 
    NSLocale *theLocale = [NSLocale currentLocale];
    NSString *symbol = [theLocale objectForKey:NSLocaleCurrencySymbol];
    NSLog(@"Symbol : %@",symbol);
    NSString *code = [theLocale objectForKey:NSLocaleCurrencyCode];
    NSLog(@"Code : %@",code);
}

ありがとう。

于 2012-07-23T14:45:22.720 に答える
1

次はどうですか:

[NSLocale autoupdatingCurrentLocale]

Appleドキュメントは言及しています

オブジェクトは常に、現在のユーザーのロケール設定の現在の状態を反映します。

于 2012-07-23T14:18:52.557 に答える