在SwiftUI中调用实例方法'appendInterpolation'时没有精确匹配

5

我遇到了这个问题,但不知道如何解决。

Text("\(Texts.orderCanceledText1) \(syncViewModel._order.id) \(Texts.orderCanceledText2)") // ERROR : here

struct Texts {
    static let orderCanceledText1 : LocalizedStringKey = "orderCanceledText1"
    static let orderCanceledText2 : LocalizedStringKey = "orderCanceledText2"
    static let orderCanceledText3 : LocalizedStringKey = "orderCanceledText3"
}

我正在使用本地化,这就是为什么我在使用它。

错误:"在调用实例方法'appendInterpolation'时没有精确匹配"


1
Texts.orderCanceledText1.description syncViewModel._order.id.description Texts.orderCanceledText2.description如果上述任何一个变量包含空值或整数值 - Irfan Anwar
@tromgy syncViewModel._order.id 工作正常,问题出在 Texts 变量上。它是一个整数。 - Camelia Zaharia
@IrfanAnwar 这是我收到的错误信息:“类型 'LocalizedStringKey' 的值没有成员 'description'”。 - Camelia Zaharia
这个链接可以帮助你 https://swiftwithmajid.com/2019/10/16/localization-in-swiftui/ - Irfan Anwar
你在SwiftUI中进行本地化的方式不正确。 - Irfan Anwar
显示剩余2条评论
3个回答

1

Irfan Anwar提供了一个好的链接。解决方案是:

let goal: LocalizedStringKey = "goal"
let text = Text(goal)

那么

Text(goal).fontWeight(.bold) + Text("\(goal).fontWeight(.bold)

0
通常适用于"optionals"以及其他产生此错误的类型的方法是使用String(describing:)
struct Device: Codable {
    let token: String
}

Logger.debug("\(String(describing: Device()))")

-1
        List(items, id:\.self)
        {
            item in
            Text("\(item.timestamp!)" )
        }

我在尝试打印item.timestamp时遇到了相同的错误。通过将!添加到item.timestamp!中,可以消除该错误。但是请注意,如果您要解包一个空值,则需要使用:

            List(items, id:\.self)
        {
            item in
            if let value = item.timestamp
            {
                Text("\(value)" )
            }
            
            
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接