调用文本的初始值设定项时没有精确匹配,如何在SwiftUI中解决此问题?

调用文本的初始值设定项时没有精确匹配,如何在SwiftUI中解决此问题?,swift,swiftui,Swift,Swiftui,我对斯威夫特不熟悉,这可能是一个愚蠢的问题,但它让我困惑了很久。 这是我的代码,我通过模仿WWDC2020的swiftUI简介中的三明治示例编写了这段代码 import SwiftUI struct movieDetail: View { var idnum:Int var body: some View { Text(idnum) } } struct movieDetail_Previews: PreviewProvider {

我对斯威夫特不熟悉,这可能是一个愚蠢的问题,但它让我困惑了很久。 这是我的代码,我通过模仿WWDC2020的swiftUI简介中的三明治示例编写了这段代码

import SwiftUI

struct movieDetail: View {

    var idnum:Int

    var body: some View {

        Text(idnum)

    }
}

struct movieDetail_Previews: PreviewProvider {

    static var previews: some View {

        NavigationView {
            movieDetail(idnum:24428)
        }
       
    }
}
当它显示为编译错误时:

调用初始值设定项时没有精确匹配项

WWDC 2020的示例如下所示

import SwiftUI

struct sandwichdetail: View {

    var sandwich:Sandwich
    @State private var zoomed = false

    var body: some View {

        VStack {
            Text(sandwich.name)
        }
        .navigationTitle(sandwich.name)
        .edgesIgnoringSafeArea(.bottom)
    }
}

struct sandwichdetail_Previews: PreviewProvider {

    static var previews: some View {
        NavigationView{
            sandwichdetail(sandwich: testData[1])
        }
        
    }
}

我不太明白这两段代码之间的区别,以及我的代码失败和三明治示例成功显示三明治名称的原因。

文本类型没有采用
Int
的初始值设定项。请尝试以下方法:

Text("\(idnum)")

Text
类型没有采用
Int
的初始值设定项。请尝试以下方法:

Text("\(idnum)")

另一种更快捷的方法是使用
description
,因为Int符合CustomStringConvertible协议

Text(idnum.description)

另一种更快捷的方法是使用
description
,因为Int符合CustomStringConvertible协议

Text(idnum.description)

如果这是一个常见的用例,您可以使用Swift的字符串插值为
文本创建自己的初始化器。但是,这可能会降低呼叫站点的类型可见性

扩展文本{
init(int:int){
self=文本(“\(int)”)
}
}

如果这是您的常见用例,您可以使用Swift的字符串插值为
文本创建自己的初始化器。但是,这可能会降低呼叫站点的类型可见性

扩展文本{
init(int:int){
self=文本(“\(int)”)
}
}

很好,很好用,非常感谢,我需要对这些细节更加认真。很好,很好用,非常感谢,我需要对这些细节更加认真