下面是我的代码片段?
extension UISwitch{ open override func draw(_ rect: CGRect) { self.tintColor = UIColor.red } }
根据苹果文档,您不应在扩展中覆盖。我明白这一点。现在我在这段代码中没有收到错误,我的应用程序中的所有开关都以红色作为色调。
我读过文章,这是因为动态调度,因为 UISwitch 是由 NSObject 继承的类。
有人可以帮我理解这个概念吗?为什么我们不应该这样做?如果 swift 是静态调度,这仍然如何工作?