У меня странная утечка памяти с этим кодом:
class Test: ObservableObject {
@Published var test:[TestStruct] = []
func getTest() {
guard let url = URL(string: "https://www.test.com") else {
return
}
URLSession.shared.dataTask(with: url) {(data,_,_) in
let testReturn = try!
JSONDecoder().decode([TestStruct].self, from: data!)
DispatchQueue.main.async {
withAnimation{
self.test = testReturn
}
}
}.resume()
}
}
struct testView: View {
@EnvironmentObject var testVar: Test
var body: some View {
VStack{
ForEach(self.testVar.test) { TestMe in
Text("print test")
}
}
}
}
, когда fun c getTest () вызывается много раз, forEach l oop увеличивает память. Когда TestVar EnvironmentObject обновляется новым вызовом Json, он не создает новые экземпляры, а просто обновляет foreach l oop
Я не знаю, что может создать эту проблему, потому что код кажется мне правильным , У кого-нибудь был подобный опыт?
Большое спасибо