【发布时间】:2021-11-03 14:23:17
【问题描述】:
如果我在搜索字段中写入,则会出现此错误:
线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
如果我输入逗号或数字(因此结果不存在),应用程序可以工作,但如果我输入一个字母(然后找到结果),应用程序就会崩溃。
override func updateControllerViews(_ animated: Bool) {
super.updateControllerViews(animated)
if textFieldSearch.text == "" {
containerButtons.isHidden = false
containerCollectionView.isHidden = true
imageDeletSearch.image = NSImage.init(named: "menu_header_cerca")
buttonDeleteSearch.isEnabled = false
} else {
containerButtons.isHidden = true
containerCollectionView.isHidden = false
imageDeletSearch.image = NSImage.init(named: "searchoff")
buttonDeleteSearch.isEnabled = true
updateDataSource()
}
collectionView.reloadData()
}
func updateDataSource() {
dataSource = DeviceSearchKeywords.filteredKeywords(byString: textFieldSearch.text)
}
extension DeviceSearchKeywords {
static func filteredKeywords(byString string: String?) -> [String : DeviceType] {
guard let string = string else {
return [:]
}
let cleanString = StringUtility.cleaning(string).lowercased()
var filteredKeyword: [String : DeviceType] = [:]
for keyword in mainDeviceKeywords {
if keyword.lowercased().contains(cleanString) {
filteredKeyword[keyword] = .deviceMain
}
}
for keyword in importDeviceKeywords {
if keyword.lowercased().contains(cleanString) {
filteredKeyword[keyword] = .deviceImport
}
}
for keyword in exportDeviceKeywords {
if keyword.lowercased().contains(cleanString) {
filteredKeyword[keyword] = .deviceExport
}
}
return filteredKeyword
}
}
【问题讨论】:
标签: swift xcode exc-bad-instruction