iOS SDK のバージョン 5.0 以降で使用できるメソッドを使用しています。もちろん、呼び出す前に、クラスにメソッドがあるかどうかを確認しています (つまり、実行中の iOS のバージョンを確認しています)。
if ([UITabBar instancesRespondToSelector:@selector(setSelectedImageTintColor:)]) {
[myTabBarController.tabBar setSelectedImageTintColor :TINT_COLOR_IMAGES];
}
これはうまくいきます。ただし、削除したいという警告が表示されますが、それを処理できるものは見つかりませんでした。警告は次のとおりです。
warning: ‘UITabBar’ may not respond to ‘-setSelectedImageTintColor:’
warning: (Messages without a matching method signature
warning: will be assumed to return ‘id’ and accept
warning: ‘...’ as arguments.)
プロジェクトのすべての警告を削除したくないので (オプション -Wall を削除します)、この #pragma を試しました:
#pragma GCC diagnostic ignored "-Wundeclared-selector"
[...] my method containing call to setSelectedImageTintColor
#pragma GCC diagnostic warning "-Wundeclared-selector"
しかし、「Wundeclared-selector」を「Wall」に置き換えても、これは機能しませんでした。つまり、#pragma は効果がなく、makefile で何かを有効にする必要があるかもしれません。
何か案が ?
ありがとう