我正在尝试在我的代码中实现一个搜索栏,但由于某种原因,我收到错误 Failed to produce diagnostic for expression; please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project
,这仅在实现 if 语句但与打印语句一起正常工作时发生。 If 语句有问题还是我使用错误?我希望它的工作方式是显示所有核心数据条目,除非在搜索栏中输入了某些内容(我假设在 If 语句中使用 or 语句来检查是否搜索 == "")以及是否输入了某些内容搜索栏只显示名称属性包含搜索栏显示内容的条目。我正在使用 Xcode 12.5。任何帮助将不胜感激。
import SwiftUI
struct customers: View {
@FetchRequest(entity: Customer.entity(),sortDescriptors: [NSSortDescriptor(keyPath: \Customer.name,ascending: true)]) var customered: FetchedResults<Customer>
@Environment(\.managedobjectcontext) var moc
@State var search = String()
var body: some View {
TextField("Search",text: $search)
VStack{
HStack{
Text("Name")
}
Group{
List(customered) {that in
if(that.name?.lowercased().contains(search.lowercased())){
Text(that.name ?? "unknown")
.onTapGesture {
if(that.shown){
that.shown = false
}else{
for shownVar in customered{
print(shownVar.name?.lowercased().contains(search.lowercased()))
}
}
}
}
}
}
}
}
附言回想一下,这也需要很长时间来编译和加载,所以有没有更快更好的方法,因为有一次它不会构建,因为它花了太长时间并说要分解代码(这是一个更短的版本实际代码)。