在 SwiftUI 中使用 Text 时如何解决 "No exact matches in call to initializer" 错误?

How can I solve "No exact matches in call to initializer" error when I am using Text in SwiftUI?

我刚开始使用 SwiftUI,有一些基本问题。 我尝试在文本字段中显示旋转值。我收到的错误消息是:“初始化程序调用中没有完全匹配”

哪里错了?

import SwiftUI

struct ContentView: View {

@State var rotation: Double = 0

var body: some View {

    VStack {

        VStack {

        Text("Hello, world!")
            .padding()
            
            Slider(value: $rotation, in: 0 ... 360, step: 0.1)
                .padding()

            Text(rotation)
              
        }
    }
}

}




struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

你应该return一个String类型来初始化文本,像这样:

struct ContentView: View {
    
    @State var rotation: Double = 0
    
    var body: some View {
        VStack {
            VStack {
                Text("Hello, world!")
                    .padding()
                
                Slider(value: $rotation, in: 0 ... 360, step: 0.1)
                    .padding()
                
                Text(rotation.string)
 
            }
        }
    }
}


extension CustomStringConvertible { var string: String { get { return String(describing: self) } } }

为了好玩,您也可以试试这个:

struct ContentView: View {
    @State var rotation: Double = 0
    
    var body: some View {
            VStack {
                Text("Hello, world!").rotationEffect(Angle(degrees: rotation)).padding()
                Slider(value: $rotation, in: 0 ... 360, step: 0.1).padding()
                Text("\(rotation)")
            }
    }
}