正在try 创建一个计算(computed)属性,以显示UIPickerView上显示的所有可能的货币.目前,我在我的数组中得到的符号总是?有什么让它工作的提示吗?

import UIKit

struct MyCurrency: Codable {
    let code: String
    let name: String
    let symbol: String
}

var currencies: [MyCurrency] {
    return Locale.Currency.isoCurrencies.compactMap {
        guard let name = Locale.current.localizedString(forCurrencyCode: $0.identifier),
              let symbol = Locale(identifier: $0.identifier).currencySymbol  else { return nil }
        return MyCurrency(code: $0.identifier, name: name, symbol: symbol)
    }
}

print(currencies)

推荐答案

您需要遍历区域设置,并使用此代码获取货币代码,您可以获得其余所有代码

var currencies: [MyCurrency] {
    return Locale.availableIdentifiers.compactMap {
        guard let currencyCode = Locale(identifier: $0).currencyCode,
              let name = Locale.autoupdatingCurrent.localizedString(forCurrencyCode: currencyCode),
              let symbol = Locale(identifier: $0).currencySymbol  else { return nil }
        return MyCurrency(code: $0, name: name, symbol: symbol)
    }
}

enter image description here

Ios相关问答推荐

如何加密字符串使用AES. GCM在Dart和解密相同的Swift?

preferredCompactColumn作为NavigationSplitViewColumn.sidebar传递,但仍能在iOS上看到详细信息页面

更改文本在Flutter 中的位置

Swift导航远离视频导致崩溃

SwiftUI检测顶级和安全区域插图

iOS 17-在Xcode 15中添加导航控制器时,导航栏不会立即显示

如何将 AppIntent 添加到应用程序目标并在交互式小部件中使用它

尽管存在浮点错误,如何显示正确的计算结果.计算器应用程序

uikit中如何触发swiftui功能

在 Swift 中从 Objective C 集合调用块

如何解码没有名称的 JSON 数组?

try 在 iOS 中分发 Flutter 应用程序时出现Invalid Provisioning Profile Signature错误

在 UICollectionView 上动态设置布局导致莫名其妙的 contentOffset 变化

如何更新推送通知服务证书

导航控制器自定义过渡动画

如何将自己项目中的类导入 Playground

命令 /Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang 失败,退出代码为 1

如何更改uitableview删除按钮文本

Swift - 获取设备的 WIFI IP 地址

在 NSUserDefaults 中保存图像?