Swift中按钮监听方法私有化之后崩溃解决方式

来源:互联网 发布:旋转矩阵大全 编辑:程序博客网 时间:2024/06/01 22:29

 navigationItem.rightBarButtonItem =UIBarButtonItem(title: "注册", style:UIBarButtonItemStyle.Plain, target:self, action: "loginBtn")


//不将其私有化是可以正常监听按钮点击

 func loginBtn() {

        print("点击登陆,注册按钮")   

    }

----------------------帅帅的分割线------------------------------------

//假如私有化,按钮点击不能被监听到,程序运行就会崩溃

private func loginBtn() {

        print("点击登陆,注册按钮")   

    }


解决方法:

@objcprivate  func loginBtn() {

        print("点击登陆,注册按钮")   

    }


解析:由于swift是静态型的语言,当这个方法私有化之后,这个按钮就不能被监;OC,有个UIController,由于是消息循环机制执行addTarget这个方法的,所以可以被执行这个方法;那么swift中怎么解决这个问题呢?:@objc,让这个方法以OC运行时方式来调用;


1 0