【问题标题】:Where to declare extensions in SwiftUI?SwiftUI 在哪里声明扩展?
【发布时间】:2019-11-11 18:15:02
【问题描述】:

我在 ContentView 的末尾声明了 Double 的扩展。但它显示错误“Initializeer 'init(_:) 要求 'Double' 符合 'StringProtocol'”。

struct ContentView : View {
    @State var demo: Double = 0
    var body: some View {
        VStack {
            Slider(value: $demo, from: 0.0, through: 100.0, by: 0.01)
                .padding()
            Text(demo.roundTo(places: 5))
       }
    }
}
extension Double {
    public func roundTo(places: Int) -> Double {
        let divisor = pow(10.0, Double(places))
        return (self * divisor).rounded() / divisor
    }
}

【问题讨论】:

  • 代码是必需的
  • 添加代码 sn-p.

标签: swift xcode swiftui


【解决方案1】:

文本视图需要一个字符串。将您的文本视图更改为:

Text("\(demo.roundTo(places: 5))")

【讨论】:

    【解决方案2】:

    在 Swift 中,字符串插值是使用 \() 完成的。

    例如:

    let age = 20
    print("I am \(age) years old")
    

    欲了解更多信息,请访问苹果的 swift docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多