Swift 选择器方法未被调用

Swift selector method not being called

我创建了一个动作class来存储选择器,然后将Target添加到按钮,但是当我点击它时,动作class中的方法没有被调用

class ItemCardAction {
    
    static var shared: ItemCardAction = ItemCardAction()
    
    private init() {
       
    }
    
    var action: Selector = #selector(ItemCardAction.shared.buttonPressed)

    @objc func buttonPressed(_ sender: UIButton!) {
        print("TEST")
        AppEngine.shared.updateItem(tag: sender.tag)
        AppEngine.shared.notigyAllObservers()
        //self.updateUI()
    }
}

添加目标

button.addTarget(self, action: ItemCardAction.shared.action, for: .touchDown)

你需要的是

button.addTarget(ItemCardAction.shared, action: ItemCardAction.shared.action, for: .touchUpInside)

如果你仔细看addTarget方法,第一个参数是target,当按钮接收到(在这种特定情况下)触摸内部事件时,iOS会寻找指定的选择器(指定在动作参数中)在指定的目标中。在您的情况下,您将目标指定为 self 并且显然选择器在 self 的范围内不可用,因此没有任何反应:)