调用文本的初始值设定项时没有精确匹配,如何在SwiftUI中解决此问题?
我对斯威夫特不熟悉,这可能是一个愚蠢的问题,但它让我困惑了很久。 这是我的代码,我通过模仿WWDC2020的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 {
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)”)
}
}
很好,很好用,非常感谢,我需要对这些细节更加认真。很好,很好用,非常感谢,我需要对这些细节更加认真