美文网首页
Swift代理函数偶尔无响应

Swift代理函数偶尔无响应

作者: fortitude1990 | 来源:发表于2019-03-13 11:03 被阅读0次

    写了一个自定义键盘,使用代理实现的回调,遇到了一个奇葩问题

    键盘都是枚举来定义的,每次回调都会返回一个枚举值,其他按钮点击后,代理函数都会响应,唯独delete按键,代理函数无响应,最初代理函数实现如下:

         // MARK: - KeyboardViewDelegate
        
        func keyboardHandler(title: String, key: Key.KeyNumber) {
            
            switch key {
            case .delete:
                self.inputAmountView?.deleteInputTF()
               break
            default:
                self.inputAmountView?.inputTF(append: title)
                break
            }
            
        }
    

    代码分析了很长时间,始终没有发现问题,浪费了好长时间,结果最后发现,在switch里面,写了哪个按键的枚举值,哪个按键就没响应,就发现了原因所在,修改后的代码如下:

         // MARK: - KeyboardViewDelegate
        
        func keyboardHandler(title: String, key: Key.KeyNumber) {
            
            switch key {
            case .delete:
                self.inputAmountView?.deleteInputTF()
               break
            case .done:
                break
            case .equal:
                break
            default:
                self.inputAmountView?.inputTF(append: title)
                break
            }
            
        }
    

    总结:swift里面switch只写一种case,使用不规范,影响了代理函数的执行

    相关文章

      网友评论

          本文标题:Swift代理函数偶尔无响应

          本文链接:https://www.haomeiwen.com/subject/pqkzpqtx.html