swift - “弱”可能只适用于类和类绑定协议类型,而不是“ContentView”我缺少什么?
问题描述
我正在尝试运行此代码,但我在关闭时收到警告......有什么帮助解决它吗?为了在后台线程中运行函数过滤器,我建议使用过滤器函数运行 init。
但是在关闭时收到此警告:
“弱”只能应用于类和类绑定协议类型,而不是“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())
}
}
解决方案
weak
是引用类型的修饰符(即弱指针,当所有引用都被释放时可以为空)。但是你的ContentView
是 a struct
,它是值类型。