首页 > 解决方案 > 为什么我得到数据模型错误只有具体类型可以符合协议

问题描述

我想将我的数据模型与 ContentView 分开。所以我添加了一个 SwiftUI 文件,代码如下:

import SwiftUI
import Combine

class User: BindableObject {
    let willChange = PassthroughSubject<Void, Never>()
    var username : String = "Jan" { willSet { willChange.send() }}
    var password : String = "123456" { willSet { willChange.send() } }
    var emailAddress : String = "jan@mail.nl" { willSet { willChange.send() } }
}

#if DEBUG
struct User_Previews: PreviewProvider {
    static var previews: some View {
        User()
            .environmentObject(User())
    }
}
#endif

我得到的错误是:

Protocol type 'Any' cannot conform to 'View' because only concrete types can conform to protocols

.environmentObject(User()) 行中发生错误。

标签: swiftui

解决方案


您不需要使用 SwiftUI 文件。它是一个简单的类,是必需的。当然,如果您删除下面的代码,它将起作用。

#if DEBUG
struct User_Previews: PreviewProvider {
    static var previews: some View {
        User()
            .environmentObject(User())
    }
}
#endif

推荐阅读