审查这段生成的可复用搜索处理器。
安装一个可复用搜索回调:忽略空白输入;每个接受的查询只报告一次结果数组;外部所有权结束后不保留控制器;不泄露查询内容;重复搜索时保持高效。
swift
final class SearchController {
var onSubmit: ((String) -> Void)?
var onResults: (([String]) -> Void)?
private let catalog = ["Swift", "Kotlin", "Rust"]
func installSearch(minLength: Int) {
onSubmit = { query in
guard query.count >= minLength else { return }
let normalized = query.lowercased()
let matches = self.catalog.filter {
$0.lowercased().contains(normalized)
}
print("search query:", query)
self.onResults?(matches)
}
}
}
生成代码仅作示例,不代表任何特定模型