【发布时间】:2017-06-11 08:43:12
【问题描述】:
我读到,如果您重写方法,最好调用super.method()。
但是,覆盖UIStoryboardSegue 的perform() 方法并调用super.perform() 会引发异常。如果我没有打电话给super.perform(),它工作正常。
为什么?
【问题讨论】:
-
When should I call super? 的可能重复项。 – 如答案中所述,没有一般规则,您必须查阅相应方法的文档。
-
用更简单的话来说:Apple 指定何时需要调用
super.method(),因为母类通过 Apple 隐藏的代码(触发调用等)做了一些“重要”的事情。比如UICollectionViewCellprepareForReuse()“这个方法的默认实现什么都不做。但是,当覆盖这个方法时,建议你还是调用super。”。将来他们可能会添加应该在内部调用的代码。在您自己的代码中,您有时可能会在子类化时避免这种情况。它适合每个案例/场景。
标签: ios swift overriding uistoryboardsegue