gpt4 book ai didi

ios - 在 Swift 4 的搜索栏中搜索超过 2 个单词时应用程序崩溃

转载 作者:行者123 更新时间:2023-11-30 12:06:51 26 4
gpt4 key购买 nike

当我尝试在搜索栏中输入超过 2 个字符时,应用程序崩溃。尝试改变逻辑但没有用。问题可能出在空格上。这是我的示例代码:

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchText.isEmpty {
tableViewAdapter.fetchRequestPredicate = nil
}
else {
var fullName = searchText.components(separatedBy: NSCharacterSet.whitespaces)
for (index, name) in fullName.enumerated() {
if name.isEmpty {
fullName.remove(at: index)
}
}
if searchText.count > 1 {
let firstName = fullName.first
let lastName = fullName[1]
tableViewAdapter.fetchRequestPredicate = NSPredicate(format: "firstName BEGINSWITH[cd] %@ AND lastName BEGINSWITH[cd] %@", firstName!, lastName)
}
else if searchText.count == 1 {
let firstName = fullName.first
tableViewAdapter.fetchRequestPredicate = NSPredicate(format: "firstName CONTAINS[cd] %@ AND firstName BEGINSWITH[cd] %@ OR lastName BEGINSWITH[cd] %@", firstName!, firstName!, firstName!)
}
}
tableView.reloadData()
}

最佳答案

如果您输入的字符超过 2 个,您的程序将尝试访问 fullName 的第二个元素,如果您没有空格,则该元素不存在在你的文字中。

替换

if searchText.count > 1
else if searchText.count == 1

if fullName.count > 1
else if fullName.count == 1

此外,您的代码有大量的强制解包。您应该避免使用它,特别是当您的数据依赖于用户输入时。

关于ios - 在 Swift 4 的搜索栏中搜索超过 2 个单词时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46583665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com