2010/06/21

Deprecation Syntax

iPhone開発での非推奨のメソッドについて、調べる機会があったのでメモ。


Xcodeでアプリ開発をしていると、変数の型が合わなかったりソース上に存在しないメソッドを呼び出すとビルド時に警告が出ます。同じことが、非推奨メソッドを使った場合にも起きます。

これってとても不思議だなと思っていました。
なぜXcodeには非推奨のメソッドが分かるのかと・・・。

まず定義されていないメソッドの呼び出しだと以下のような類推ができます。
ヘッダーファイルにそのメソッドの宣言がない

ビルド時の警告発生

非推奨のメソッドも”メソッド”なので同じことが言えるはず。
ということで、ヘッダーファイルを見てみます。

/Developer/Platforms/{使用しているプラットフォーム名}.platform/Developer/SDKs/{使用しているバージョン名}.sdk/System/Library/Frameworks/Foundation.framework/Headers/{クラス名}.h


すると、メソッド宣言の後ろに変なものがついています。

DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER;

これが"Deprecation Syntax"です。つまり非推奨なメソッドを定義している構文です。
言語サマリーにも書いてありました。


実際に自分でもこれを利用することで、ビルド時に警告を起こすことができます(やっても何の得もありませんが)。