“weak”可能仅适用于类和类绑定协议类型,而不是“ContentView”,我缺少什么?

Dam*_*zzi 3 closures swift swiftui

我尝试运行此代码,但我在关闭中收到警告...有任何帮助来解决它吗?为了在后台线程中运行函数过滤器,我建议使用过滤器函数运行 init 。

但在关闭时收到此警告:

“weak”只能应用于类和类绑定协议类型,而不是“ContentView”

import SwiftUI

struct ContentView: View {
    @ObservedObject var dm: DataManager
    @State private var searchTerm : String = ""
    @State var filteredAirports: [AirportModel] = []
    init(dataM: DataManager) {
        self.dm = dataM
        dm.filter(valoreSearhed: searchTerm, arrayTosearh: dm.airportVector, closure: { [weak self] in
            self?.filteredAirports = $0 })
    }
    var body: some View {
        VStack {
            SearchBar(text: $searchTerm)

            List {
                ForEach(filteredAirports) { valore in
                    Text(valore.aptICAO)
                }
            }
        }
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView(dataM: DataManager())
    }
}
Run Code Online (Sandbox Code Playgroud)

Asp*_*eri 5

weak是引用类型的修饰符(即弱指针,当所有引用被释放时可为空)。但你的ContentView是 a struct,这是值类型。