強火で進め

このブログではプログラム関連の記事を中心に書いてます。

deprecated (廃止予定)のワーニングを非表示にする方法

位置情報を取得するプログラムを書く時に使用する locationServicesEnabled はiOS4.0からはクラスメソッドですがそれ以前はプロパティだったりします。

そのため、クラスメソッドの locationServicesEnabled が存在するかどうかをチェックして存在しない場合はプロパティにアクセスする様に記述します。

しかし、その様に記述するとこの様な「それって廃止予定のプロパティですよ」とワーニングが発生します。

warning: 'locationServicesEnabled' is deprecated [-Wdeprecated-declarations,8]

この様な場合はちゃんと分かっている上で記述しているのでワーニングを非表示にしたい所です。

調べてみた所、以下の様な #pragma を該当する部分の上下に記述するとワーニングのチェックを行わない様に出来るみたいです。

#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
        locationServersEnabled = locationManager.locationServicesEnabled;
#pragma GCC diagnostic warning "-Wdeprecated-declarations"

その他にビルドオプションに -Wno-deprecated を追加するという方法も有るみたいですがこちらだと全ての廃止予定(deprecated)のワーニングが表示されなくなるので扱いには注意が必要です。

参考サイト

iphone - Suppressing deprecated warnings in Xcode - Stack Overflow
http://stackoverflow.com/questions/2622017/suppressing-deprecated-warnings-in-xcode