我什么时候应该在 swift 中使用 anyObject 而不是 UIButton?我正在为我的按钮制作一个 IBAction,该按钮将用于执行比任务上更多的任务是切换到下一个视图。
最终,这真的无关紧要。
您可以选择使用(sender: AnyObject)
参数,也可以使用(sender: UIButton)
。
但是,如果您需要访问 UIButton
提供的属性,有时可能必须将AnyObject
转换为UIButton
。
例如,假设您有并且您希望按钮在单击后消失。
func doSomething(sender: AnyObject) {
let button: UIButton = sender as! UIButton
button.hidden = true
}
将抽象 AnyObject 类型用于 IBAction 的目的对于具有多个应触发相同操作的 UI 对象的情况可能是有利的。 例如,如果您希望按钮和手势识别器共享常见操作的功能。 即使使用共享操作,两个对象也可能具有不同的执行路径。