因此,请考虑以下功能:
+ (NSLocale *)localeWithCurrencyCode:(NSString *)currencyCode
{
for (NSString *localeIdentifier in [NSLocale availableLocaleIdentifiers])
{
NSLocale *locale=[[NSLocale alloc] initWithLocaleIdentifier:localeIdentifier];
if ([[locale objectForKey:NSLocaleCurrencyCode] isEqualToString:currencyCode])
{
return locale;
}
}
////
return [[NSLocale alloc] initWithLocaleIdentifier:[NSLocale localeIdentifierFromComponents:[NSDictionary dictionaryWithObject:currencyCode forKey:NSLocaleCurrencyCode]]]; // For some codes that locale cannot be found, initialize manually!
}
这种作品,但它并没有按照预期的方式发挥作用。因为其他国家共享货币(例如,美元用于巴拿马,厄瓜多尔等)......它按字母顺序返回所述货币的第一个国家,这是不正确的。
是否有更好的方法来构建某种类似的功能,而不为每种货币合并主要国家/地区的某种外部或第三方数据库? 希望避免外部依赖。