首页 > 解决方案 > 结构“状态”不能用作属性

问题描述

我在文件中有以下代码ContentView.swift

struct ContentView: View {
    @State private var selectedSpeed: Int = 1
    
    var body: some View {
        Text("Hello World")
    }
}

为了便于阅读,我对其进行了简化。我知道selectedSpeed没有被使用。

selectedSpeed声明的行中,我收到以下错误:Struct 'State' cannot be used as a attribute

有趣的是,将完全相同的代码粘贴到 Playground 中构建成功。我在 Xcode 12.1 上。我已经尝试过核对派生数据和重新打开 Xcode 的组合,但错误仍然存​​在。任何想法这里有什么问题?

标签: iosswiftmacosswiftuiwatchos

解决方案


事实证明,我的项目中有一个struct调用State,这导致了问题。

TL;DR:如果您打算使用 SwiftUI,切勿调用任何结构和潜在的类 State。我会将其扩展为不使用与属性包装器冲突的东西来命名您的任何类或结构。

这也解释了为什么在操场上一切正常。

报告导航器实际上是在给我提示

在此处输入图像描述


推荐阅读