【问题标题】:Get local currency in swift快速获取当地货币
【发布时间】:2016-06-20 18:05:20
【问题描述】:

我正在为多个国家/地区设置一个应用购买商店。我怎么知道我必须以美元、欧元等显示价格... 我认为这与 localeIdentifier 有关,但我不确定如何处理

【问题讨论】:

    标签: xcode swift locale currency


    【解决方案1】:

    您可以从(NS)Locale获取货币符号和代码

    Swift 1 和 2

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

    斯威夫特 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!
    

    这与用户区域格式设置相关,适用于 iOSmacOS

    【讨论】:

    • 使用 Xcode beta 4 (Swift 3) 我收到错误:“Locale”类型的值没有成员“对象”
    • @blwinters 我认为 swift 3 的等价物是 Locale.current.regionCode
    • @blwinters 在测试期间,语法会一直变化。请阅读相应 Xcode 版本中Locale 的文档。
    • @vadian 好的,我在这里 (developer.apple.com/reference/foundation/nslocale) 看到 currencyCode 现在是 Locale 的属性,并且 object(forKey:) 不再可用,或者至少没有标记为“Beta”。
    • @HAS 谢谢 :-)
    【解决方案2】:

    对于 swift3

    //User region setting return
    let locale = Locale.current //NSLocale.current
    
    //Returns true if the locale uses the metric system (Note: Only three countries do not use the metric system: the US, Liberia and Myanmar.)
    let isMetric = locale.usesMetricSystem
    
    //Returns the currency code of the locale. For example, for “zh-Hant-HK”, returns “HKD”.  
    let currencyCode  = locale.currencyCode
    
    //Returns the currency symbol of the locale. For example, for “zh-Hant-HK”, returns “HK$”.
    let currencySymbol = locale.currencySymbol
    

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      相关资源
      最近更新 更多