【问题标题】:in a search field error Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)在搜索字段错误线程 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
【发布时间】: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


    【解决方案1】:

    EXC_BAD_INSTRUCTION 表示您在代码中插入了未定义的指令,并在运行时检测到。

    你可以有一个:

    • 强制施法失败 (as!) 但您发布的代码中没有证据
    • 数组越界
    • 试图强制解开 (!) 一个 nil 可选属性

    如果您还没有调试过激活异常断点的代码,请尝试调试它!

    【讨论】:

    • 你写的我已经知道了,但我不知道如何解决它
    • 是的,请查看线程 4:断点 1.3 和 0x7fff6c7db0f8 :pushq %rbp
    • 此错误无助于解决您的问题,您需要发布与此相关的完整代码以及错误所在行
    • 我在文章开头发表了
    • 您应该将 Item 对象的视图链接(在 Cell 项目的 .xib 内)到根视图。而且,如果你还没有这样做,你需要在属性检查器中设置笔尖名称。
    猜你喜欢
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    相关资源
    最近更新 更多