我在Swift中尝试为位置应用添加搜索栏时遇到此错误:
“错误无法在属性初始值设定项内使用示例成员'Location';属性初始值设定项在“self "可用之前运行”
此处发生错误:
private var listOfLocation = Location
完整代码
import SwiftUI
struct ContentView: View {
@EnvironmentObject var authentication: Authentication
@State var searchText = ""
private var listOfLocation = Location
var body: some View {
TabBar()
}
var Location: [String] {
let lcLocations = listOfLocation.map { $0.lowercased() }
return searchText == "" ? lcLocations : lcLocations.filter {
$0.contains(searchText.lowercased())
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.environmentObject(MapViewModel())
}
}
我试过使用一个懒惰的var,但仍然不起作用。我是Swift的新手,所以任何帮助都会非常感激。
1条答案
按热度按时间cczfrluj1#
感谢您的反馈。我能够通过将搜索函数添加到我的“LocationList”文件而不是ContentView来解决这个问题。除了添加“@State”属性来跟踪搜索查询之外,我还添加了一个计算属性来根据搜索查询过滤“locations”数组。