例如:
// Has super override func awakeFromNib() { super.awakeFromNib() } // No super override func drawRect(rect: CGRect) { }
解决方法
只是为了解释为什么你所包含的两个例子可能是它们的方式,我们可以查看-[UIView drawRect:]的文档,其中指出:
If you subclass UIView directly,your implementation of this method
does not need to call super. However,if you are subclassing a
different view class,you should call super at some point in your
implementation.
以及-[NSObject awakeFromNib]的文件,其中规定:
You must call the super implementation of awakeFromNib to give parent
classes the opportunity to perform any additional initialization they
require. Although the default implementation of this method does
nothing,many UIKit classes provide non-empty implementations.
大多数情况下,你可以安全地打电话给方法的超级实现(见下面的评论).但是,请注意,某些方法要求您调用其超级实现,有些则不需要,有些方法甚至要求您在覆盖中的特定点调用超级实现.所以请记住,如有疑问,请务必查阅文档.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。