Search code examples
xcodeswiftlocalecurrency

Get local currency in swift


I am setting up an little in app purchase store for muliple countries. How can I figure out that I have to show up the price in Dollar, Euro etc... I think it have to do with the localeIdentifier but I am not sure how to handle this


Solution

  • You can get the currency symbol and code from (NS)Locale with

    Swift 1 and 2

    let locale = NSLocale.currentLocale()
    let currencySymbol = locale.objectForKey(NSLocaleCurrencySymbol)!
    let currencyCode = locale.objectForKey(NSLocaleCurrencyCode)!
    

    Swift 3

    let locale = Locale.current()
    let currencySymbol = locale.object(forKey: .currencySymbol)!
    let currencyCode = locale.object(forKey: .currencyCode)!
    

    Swift 3.1+

    let locale = Locale.current
    let currencySymbol = locale.currencySymbol!
    let currencyCode = locale.currencyCode!
    

    This correlates with the user region format settings and works in both iOS and macOS