How can i get currency symbols from currency code in iphone?

前端 未结 9 859
庸人自扰
庸人自扰 2020-12-28 14:55

I have get currency code (Eg: USD, EUR, INR) from webservice response. I need to show the currency symbols for the corresponding currency code. If the currency code is USD,

9条回答
  •  悲哀的现实
    2020-12-28 15:13

    This code is what you are looking for though not very efficient because of loop for locales. Still it works correctly for all currency codes, not just for eur or usd. Hope this will help you.

    - (NSLocale *) findLocaleByCurrencyCode:(NSString *)_currencyCode
    {
            NSArray *locales = [NSLocale availableLocaleIdentifiers];
            NSLocale *locale = nil;
    
            for (NSString *localeId in locales) {
                    locale = [[[NSLocale alloc] initWithLocaleIdentifier:localeId] autorelease];
                    NSString *code = [locale objectForKey:NSLocaleCurrencyCode];
                    if ([code isEqualToString:_currencyCode])
                            break;
                    else
                            locale = nil;
    
            }
    
            return locale;
    }
    
    - (NSString *)findCurrencySymbolByCode:(NSString *)_currencyCode
    {
            NSNumberFormatter *fmtr = [[NSNumberFormatter alloc] init];
            NSLocale *locale = [self findLocaleByCurrencyCode:_currencyCode];
            NSString *currencySymbol;
            if (locale)
                    [fmtr setLocale:locale];
            [fmtr setNumberStyle:NSNumberFormatterCurrencyStyle];
            currencySymbol = [fmtr currencySymbol];
            [fmtr release];
    
            if (currencySymbol.length > 1)
                    currencySymbol = [currencySymbol substringToIndex:1];
            return currencySymbol;
    }
    

    Use it this way:

    NSString *currencySymbol = [self findCurrencySymbolByCode:currencyCode];
    

提交回复
热议问题