3
私はiOS用の静的ライブラリを作成しています。 CoreLocationがプロジェクトに追加されているかどうかをプログラムで確認したいのですが、それを行う方法はありますか?iOSフレームワークを入手できますか?
私はiOS用の静的ライブラリを作成しています。 CoreLocationがプロジェクトに追加されているかどうかをプログラムで確認したいのですが、それを行う方法はありますか?iOSフレームワークを入手できますか?
おそらくのようなもの:
if(NSClassFromString(@"CLLocationManager"))
{
NSLog(@"CoreLocation is available");
}
がそれを行うだろう。 NSClassFromStringはNSStringを受け取り、その名前のクラスが現在実行時に利用可能かどうかをチェックします。そうであればClass
オブジェクトを返し、そうでない場合はnilを返します。 if文は効果的にnilと比較されます。
したがって、適用するロジックは「現在CLLocationManagerというクラスは存在していますか?」ということです。これはCoreLocationがロードされていることを確認するためのプロキシです。これはそのフレームワークの基本クラスの1つです。
ありがとうTommy! #importが失敗した場合、私が知ることができる方法はありますか? –
Julie
これは実際にはコンパイル時の指示です。コンパイラがファイルを見つけることができるかどうかに基づいて失敗するか、成功するでしょう。あなたがしたいことは、ライブラリーにリンクせずにヘッダーをインポートしてから、ライブラリーを使用できるかどうかのコンパイル時検査を使用して、後のバージョンのiOSでのみ表示されるAPIを扱う際の公式アドバイスです。それはあなたの問題を解決するように聞こえますか? – Tommy