2012-02-22 3 views
0

iOS 5のドキュメントを見てみると、modalViewControllerはpresentViewControllerの代わりに非難されていました。実行時にviewedViewControllerを検出します

[viewController respondsToSelector:@selector(presentedViewController)]; 

をゲッターが存在したかどうかを確認し、それがサポートだときpresentedViewControllerを使用するには:私が使用して考えます。

これはiOS5 +でこの機能を検出する正しい方法ですか?それとも良い方法がありますか?

+0

新しいコードを記述していて、ベースラインがすでにiOS 5である場合は、その存在を全くテストする必要はありません。方法はそこにあります。同じバイナリでiOS 4をサポートする必要のあるプロジェクトを持っている場合にのみ、テストを実行する必要があります(テストしてテストします)。 – Dirk

答えて

0

包含コードの中には、iOS4ではプライベートなものがあり、respondsToSelectorによるチェックだけでは必ずしも機能しない場合があります。あなたのケースで失敗するかどうかは100%確信していませんが、現在のバージョンがiOS5以上であるかどうかを確認することをお勧めします。これは、以前のバージョンでiOS5固有のコードを使用していないことを確認する、より堅牢で将来の証明方法です。

float version = [[[UIDevice currentDevice] systemVersion] floatValue]; 
+0

これは、5.0、5.1では問題なく動作しますが、4.3.3や5.1.1のように動作しますか?私は文字列を解析し、最悪の場合には何らかのロジックを実行できます。 –

+0

systemVersionプロパティは、4.3.3と5.1.1で文字列マッチングできるNSStringです。だから、はい、それもそれらのバージョンで動作するはずです。 –

関連する問題