首页 > 解决方案 > 为什么它在 SwiftUI 中总是说“无法将类型''的值转换为预期的参数类型''”

问题描述

我在下面有一个简单的应用程序,在 SwiftUI 中,它会抛出一个错误,例如我使用的“无法转换类型的值” AppView(count: 5, total: 10),仍然相同,但我不太了解,我错过了哪一点,任何想法都会受到赞赏。

代码:

 import SwiftUI
 struct AppView: View {
 var count: Int
 var total: Int
  var fontOne: Font
  var colorOne: Color
  var showBottomText: Bool

  public init(count: Int,
              total: Int,
              progress: CGFloat,
              fontOne: Font = Font.system(size: 75, weight: .bold, design: .rounded),
              colorOne: Color = Color.primary,
              fill: LinearGradient = LinearGradient(gradient: Gradient(colors: [Color.green, Color.blue]), startPoint: .top, endPoint: .bottom),
              lineWidth: CGFloat = 25.0,
              lineCap: CGLineCap = CGLineCap.round,
              showText: Bool = true,
              showBottomText: Bool = true) {

      self.count = count
      self.total = total
      self.fontOne = fontOne
      self.colorOne = colorOne
      self.showBottomText = showBottomText
  }
var body: some View {
    ZStack{
            
                if showText {
                    //Text at the centre
                    VStack {
                     
                        Text("\(count)")
                            .font(fontOne)
                            .foregroundColor(colorOne)
                        if showBottomText{
                        
                            Text("/ \(total)")
                                .font(fontOne)
                                .foregroundColor(colorOne)
                        }}}}} }

 struct AppView_Previews: PreviewProvider {
   static var previews: some View {
    AppView(count: Int, total: Int, progress: CGFloat)
    }
   }

标签: swiftswiftui

解决方案


问题是您实际上并没有在您的AppViewinit 中传递任何值AppView_Previews,您只是指定了输入参数类型。您需要传入具体的值。

struct AppView_Previews: PreviewProvider {
    static var previews: some View {
        AppView(count: 5, total: 10, progress: 0.5)
    }
}

推荐阅读