我有一个用于从 URL 获取 json 数据的类。我希望能够根据存储在注入到我的应用程序根视图中的 EnvironmentObject 中的属性来更改 URL 的路径。显然,该类不被视为根视图的祖先。当我尝试在我的类中引用 EnvironmentObject 时出现此错误。
SwiftUI 错误线程 1:致命错误:找不到全局数据类型的 observableobject。globaldata 的 view.environmentobject(_:) 作为该视图的祖先可能会丢失。
public class ImageFetcher: ObservableObject {
@Published var noteImages = [NoteImageData]()
@EnvironmentObject var theBody: GlobalData
init() {
load()
}
func load() {
let url = URL(string: "http://start of the path/\(theBody.imagePath)/data.json")!
URLSession.shared.dataTask(with: url){(data,response,error) in
do {
if let d = data {
//print(String(decoding: d, as: UTF8.self))
let decodedLists = try JSONDecoder().decode([NoteImageData].self , from: d)
DispatchQueue.main.async {
self.noteImages = decodedLists
}
}else{
print("no data")
}
}
catch {
print("decoder error")
}
}
.resume()
}
}
如何根据存储在 EnvironmentObject 中的属性将稍微不同的路径传递给该类?我曾尝试将参数传递给类,但这通常会导致抱怨类尚未实例化。谢谢