2011-07-07 15 views

答えて

3

おそらくのようなもの:

if(NSClassFromString(@"CLLocationManager")) 
{ 
    NSLog(@"CoreLocation is available"); 
} 

がそれを行うだろう。 NSClassFromStringはNSStringを受け取り、その名前のクラスが現在実行時に利用可能かどうかをチェックします。そうであればClassオブジェクトを返し、そうでない場合はnilを返します。 if文は効果的にnilと比較されます。

したがって、適用するロジックは「現在CLLocationManagerというクラスは存在していますか?」ということです。これはCoreLocationがロードされていることを確認するためのプロキシです。これはそのフレームワークの基本クラスの1つです。

+0

ありがとうTommy! #import が失敗した場合、私が知ることができる方法はありますか? – Julie

+0

これは実際にはコンパイル時の指示です。コンパイラがファイルを見つけることができるかどうかに基づいて失敗するか、成功するでしょう。あなたがしたいことは、ライブラリーにリンクせずにヘッダーをインポートしてから、ライブラリーを使用できるかどうかのコンパイル時検査を使用して、後のバージョンのiOSでのみ表示されるAPIを扱う際の公式アドバイスです。それはあなたの問題を解決するように聞こえますか? – Tommy

関連する問題