Swift的几个新特性

  • 方法默认为私有时,对一个对象监听,不能对这个方法进行调用
       closeBtn.addTarget(self, action: "closeBtnClick", forControlEvents: .TouchUpInside)
    
       @objc private func closeBtnClick() {
         dismissViewControllerAnimated(true, completion: nil)
     }
    
  • 当closeBtnClick方法前没有@objc修饰时,监听closeBtn无法调用这个方法:
    • 事件监听的本质:1.将方法包装@SEL 2.去类中的方法列表中找对应的函数 3.执行函数
    • 如果一个方法被声明称private,那么该方法就不会被添加到内的方法列表中
    • 只需要在方法最前面加上@objc,那么该方法依然会被添加到方法列表中

你可能感兴趣的:(Swift的几个新特性)