提问者:小点点

表达式类型“String”在没有更多上下文的情况下不明确。


iPad版Swift Playgrounds应用程序中的以下代码给了我一条错误消息:

Expression type `String` is ambiguous without more context

有人知道为什么会这样吗?提前感谢。

import SwiftUI
import Foundation
import PlaygroundSupport

struct ContentView: View {
    @State private var progress: Double = 0.6
    var body: some View {
        VStack {
            Text("test")
            HStack {
                Slider(value: $progress)
                Text(String(format: "%.2f", progress))
            }
        }.border(Color.blue)
    }
}

PlaygroundPage.current.setLiveView(ContentView())


共2个答案

匿名用户

是的,这很奇怪。出于某种原因,iPad上的Swift Play是不同的。

改用带说明符的字符串插值:

替换

Text(String(format: "%.2f", progress))

具有

Text("\(progress, specifier: "%.2f")")

注意:

如果你不想让你的文本到处乱跳,可以使用一种带有单间距数字的字体,比如Helvetica Neue。将.font(font.custom(“Helvetica Neue”,大小:20))添加到Text语句的末尾。

匿名用户

代码没有问题…重新启动Xcode