2012-02-20 11 views
4

現在、iPhone 3GでiOS 4.0のアプリケーションをテストしています。NSClassFromString()は、クラスを使用できない場合でもクラスを返します。

このクラスが利用可能かどうかを確認するには、次のコードを用意しています。ドキュメントで

if (NSClassFromString(@"CLGeocoder")) 

それはCLGeocoderはiOSの5.0以降で利用可能であることを述べています。 しかし、上記のコードはnilを返しません。

なぜですか?このクラスはCLGeocoderが利用可能であるかどうかを確認するには

+3

それが何を返すのですか? 「CLGeocoder」は、iOS 4には非常によく入っている可能性があり、公開されていない可能性があります。 –

+0

@ JoshCaswellそれはまさにCLGeocoderを返す!おそらくあなたは正しいでしょう。私はすでに私が許可されるとすぐに回答として投稿する回避策を見つけました。あなたのヒントをありがとう – bllubbor

答えて

2

のiOS 4.0で利用すべきではない、それは本当に私は、次の使用のiOS 5を実行している:

if (NSClassFromString(@"CLGeocoder") && 
    [NSClassFromString(@"CLGeocoder") instancesRespondToSelector: 
@selector(reverseGeocodeLocation:completionHandler:) ]) { 

         //iOS 5 or later  
     } 
+0

NSClassFromStringだけでは決して/時には十分ではないですか? – Rivera

関連する問題