ラベル NS_REQUIRES_SUPER の投稿を表示しています。 すべての投稿を表示
ラベル NS_REQUIRES_SUPER の投稿を表示しています。 すべての投稿を表示

2013/11/22

子クラスのメソッド内から親クラスのメソッドを呼ばせる必要があるときはNS_REQUIRES_SUPERを使いましょう

UIViewControllerviewDidAppear: のように、子クラスのメソッド内で親クラスのメソッドを呼ぶことを強制させたいことがあります。

このような場合に、Appleのドキュメントではその旨が書かれていたりします (例えば “If you override this method, you must call super at some point in your implementation.”) が、 うっかり忘れても警告なしでコンパイルが成功してしまいます。

NS_REQUIRES_SUPERを使うと、このようなときに警告を出してくれるようになります。

なお、詳細はClangの言語拡張を参照してください。