我是SwiftUI的新手,所以请容忍我的错误。
我试图遵循这个教程,但我使用的不是下载JSON,而是使用MongoDB领域,特别是Realm.asyncOpen。这是我的ObservableObject课程:
class Gallery: ObservableObject {
@Published var results: Results<tiktoks>
init(results: Results<tiktoks>) {
let user = app.currentUser!
let configuration = user.configuration(partitionValue: user.id)
Realm.asyncOpen(configuration: configuration) { (userRealm, error) in
guard error == nil else {
fatalError("Failed to open realm: \(error!)")
}
print("connected somehow")
self.results = userRealm!.objects(tiktoks.self)
}
}
}我也有点遵循这个指南,因为我没有使用来自YouTube教程的Decodable结构,所以我遇到了一些错误。(编辑:随着我更深入地研究,我实际上可能需要它,但我在尝试使用它们时遇到了一些麻烦)
但是,当我试图从一个不同的结构中获取变量时,我会得到以下错误:
@ObservedObject var gallery = Gallery
Type 'Gallery.Type' cannot conform to 'ObservableObject'; only struct/enum/class types can conform to protocols我在这里做错什么了?有人让MongoDB领域使用ObservableObject吗?
发布于 2020-10-26 21:23:08
我无法让ObservableObject工作,所以我只是在呈现视图时将MongoDB函数放在init()函数中。
struct Home: View {
let gallery: Results<Tiktoks>
let user = app.currentUser!
let realm: Realm
init() {
let configuration = user.configuration(partitionValue: user.id)
self.realm = try! Realm(configuration: configuration)
let data = realm.objects(Tiktoks.self)
self.gallery = data
print(data)
}
var body: some View {
NavigationView {
ScrollView {
LazyVGrid(columns: [ // ...当数据库也被更改时,它看起来也会重新呈现视图。
https://stackoverflow.com/questions/64509881
复制相似问题