【问题标题】:Value conversion error when trying to make a swift toggle button尝试制作快速切换按钮时出现值转换错误
【发布时间】:2022-12-03 10:50:16
【问题描述】:

目前,我正在快速学习这门语言,并且我是从 Java/C++ 的角度来看它的。我正在尝试为我玩的名为 World War II Online 的游戏制作一个应用程序。但是,我无法理解为什么在尝试在切换中编码以记住密码时出现绑定错误。以下是我的应用程序登录页面的代码。

struct ContentView: View {
  @State private var empty_field = ""
  @State private var passwordState = false
  let userfieldTitle : String = "username"
  let passwordFieldTitle : String = "password"
  let landingPageTitle = "World War II Online"
  let toggleName = "remember password"

var body: some View
{
    Text(landingPageTitle).font(.largeTitle)
    Section {
        Form{
            VStack
            {
                
                TextField(userfieldTitle,text : $empty_field)
                TextField(passwordFieldTitle,text : $empty_field)
                Toggle(toggleName, isOn: $passwordState){
                     print("hello world")   
                }
            }
            .padding()
        }
    }
}

我收到错误:

无法将“绑定”类型的值转换为预期的参数类型“KeyPath<(() -> ()).Element, Binding>”

我真的很不了解绑定和属性。有什么我一直对代码视而不见的东西吗?

【问题讨论】:

  • 你的音节太多了;这个词实际上是“三元”。 == true 对于布尔值来说总是多余的。
  • 即便如此,我还是遇到了同样的错误。我更新了我的代码

标签: swift swiftui


【解决方案1】:

您不能只将代码放在大括号中并让它在没有此扩展名的情况下执行。

public extension View {
  /// Execute imperative code.
  func callAsFunction(_ execute: () -> Void) -> Self {
    execute()
    return self
  }
}

【讨论】:

  • 您能否在我的内容查看页面的联系方式中详细说明它是如何工作的或为什么我需要它?对不起 :)。这如何转化为切换按钮的使用?
猜你喜欢
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多