微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Text() 内的 SwiftUI 中使用 swift-currency 显示货币而不显示“可选”?

如何解决如何在 Text() 内的 SwiftUI 中使用 swift-currency 显示货币而不显示“可选”?

我正在尝试使用以下库:https://github.com/peek-travel/swift-currency

我遇到的问题是我是否有一个变量:

let dollaramount:USD = USD(1.88)

当我这样做时:

Text(dollaramount) // I get errors about "Initializer 'Init(_:)' requires that 'USD' conform to 'StringProtocol'

当我尝试时:

Text("\(dollaramount)") // I get error about "Instance method 'appendINterpolation' requires that 'USD' conform to '_FormatSpecifiable'

我的尝试:

Text("\(dollaramount.localizedString()).") // No errors,but the SwiftUI Text element shows "Optional(USD(1.17))"

显示字符串的正确方法是什么,这样我就不会得到所有的 Optional(USD(1.17)) 而只是像它应该的那样显示“$1.17”?另外,使用 USD 作为此类变量的类型是否正确?我读过 float 和 double 不应该用于货币。如果在进行大量货币处理时美元不是首选类型,请提供正确的替代方案。

解决方法

因为 localizedString() 返回可选值。您可以简单地提供默认值以避免 nil

 Text("\(dollaramount.localizedString() ?? "My optional").")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。