Objective c 货币标识符中的主要ISO国家代码(或“NSLocale”?(即不是按字母顺序排列的第一个使用货币的国家) ,请考虑以下函数: + (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! }

Objective c 货币标识符中的主要ISO国家代码(或“NSLocale”?(即不是按字母顺序排列的第一个使用货币的国家) ,请考虑以下函数: + (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! },objective-c,localization,currency,nslocale,Objective C,Localization,Currency,Nslocale,这种方法可行,但效果不理想。因为其他国家共享货币(例如,巴拿马、厄瓜多尔等国使用美元)。。。它按字母顺序返回所述货币的第一个国家,这是不正确的。 有没有更好的方法来构建类似这样的功能,而不必为每种货币合并某种主要国家的外部或第三方数据库希望避免外部依赖。您真正想要的是什么?另一个更好的共享货币的例子是欧元,而不是美元。根据维基百科,厄瓜多尔实际上使用的是美元(不像加拿大,它使用自己的美元。这可能会让人很困惑)。当然,对于欧元来说,绝对没有什么可以被称为“主要”国家。对,所以欧元将是一个例外,因为

这种方法可行,但效果不理想。因为其他国家共享货币(例如,巴拿马、厄瓜多尔等国使用美元)。。。它按字母顺序返回所述货币的第一个国家,这是不正确的。


有没有更好的方法来构建类似这样的功能,而不必为每种货币合并某种主要国家的外部或第三方数据库希望避免外部依赖。

您真正想要的是什么?另一个更好的共享货币的例子是欧元,而不是美元。根据维基百科,厄瓜多尔实际上使用的是美元(不像加拿大,它使用自己的美元。这可能会让人很困惑)。当然,对于欧元来说,绝对没有什么可以被称为“主要”国家。对,所以欧元将是一个例外,因为它不属于一个国家。但是,我要寻找的是一种货币的主要国家。我几乎认为最好是对共享货币的实例进行硬编码。比如欧元,美元。