我无法从货币代码中获取货币符号(例如' $')(例如' USD')。
我目前正在尝试这种方式:
NSString *code = [NSLocale ISOCurrencyCodes][indexPath.row];
NSLog(@"%@", [[NSLocale currentLocale] displayNameForKey:NSLocaleCurrencySymbol value:code]);
接收(null)作为结果...寻找从货币代码中获取货币符号的正确方法。
即使我还没有看到结果,我很确定这会重复输入(例如欧元区国家会重复,并最终会许多不同的符号)。有没有更好的方法解决这个问题?
编辑:我没有遇到NSNumberFormatter的问题,我需要的是iOS中支持的所有货币列表,供用户选择一个(I将使用NSNumberFormatter处理正确货币的格式,而不会遇到麻烦。
由于
答案 0 :(得分:4)
我无法重现您的问题。以下工作正常:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
for (NSString *code in [NSLocale ISOCurrencyCodes]) {
NSLog(@"%@ -> %@", code, [[NSLocale currentLocale] displayNameForKey:NSLocaleCurrencySymbol value:code]);
}
}
return 0;
}
我怀疑你的问题是indexPath.row
并不是你所期望的。
你不应该期待很多重复(如果有的话)。货币代码列表不列出国家/地区;它列出了货币。所以只有一欧元映射到欧元。在我的系统上,除了两个以外的所有解析(EQE和LSM都是已停止的货币)。
请注意,我所查看的列表中有299种不同的货币,因此您的选择清单可能比您想的要长得多。
答案 1 :(得分:0)
我不知道你是否已经明白了这一点。
我在模拟器上运行的类似问题,但不是设备。如果您在模拟器上运行,请查看手动设置语言和区域是否有帮助。我注意到这是特定的,当你的计划依赖于&#34;系统语言&#34;和&#34;系统区域&#34;。如果我手动将语言设置为&#34;英语&#34;和地区到&#34;美国&#34;它可以再次确定货币符号。
执行此操作的步骤:
点击您的计划 - &gt;点击&#34;编辑方案&#34; - &GT;确保您已在侧栏中选择了运行选项 - &gt; &#34;选项&#34; - &GT;应用程序语言和应用程序区域设置为非默认系统。
如果有帮助,请告诉我。