0

現在の SDK バージョンで廃止された機能を使用すると、コンパイラはそれについて警告します。それとは正反対の機能を見つけています。

特定の SDK バージョンで定義されていないクラスまたはメソッドを使用すると、コンパイラはそれについて警告します。

この機能を取得するにはどうすればよいですか? __IPHONE_OS_VERSION_MAX_ALLOWEDこのようにprefix-headerに定義を入れて定義してみましたが、

#undef      __IPHONE_OS_VERSION_MAX_ALLOWED
#define     __IPHONE_OS_VERSION_MAX_ALLOWED         40000

ただし、SDK 自体でもバージョンの不一致を検出します。(などUIKit)

ライブラリ コードには iOS 4.0 の下位互換性が必要であり、下位互換性をチェックするための自動化された方法が必要です。機能の可用性テストがすべてを解決するわけではないことはわかっていますが、これにより作業がはるかに簡単になります。

コンパイラで特定の SDK バージョンの機能の可用性を確認するにはどうすればよいですか?

4

2 に答える 2

0

NSClassFromStringを使用して使用する前に、クラス(機能)を確認する必要があると思います。

Class myClass = NSClassFromString(@"CLassThatYouWantToUse"); //get the class object
if (myClass != nil)
    {
       // The device will support this class.. so carry on...
     }
else
      {
           // The device doesn't support this class.
       }
于 2012-04-19T07:42:26.523 に答える
0

respondsToSelectorこれは、現在実行している OS にセレクターが存在するかどうかを確認できるの仕事のように思えます。

ただし、アプリの将来性を本当に保証したい場合は、サポートする最小 OS バージョン用に定義された最新の API を常に使用する必要があります。

これは、あなたを助けるかもしれない「respondsToSelector」に関する関連する質問です

于 2012-04-19T06:59:00.873 に答える