2012-04-04 1 views
1

明らかに、私のTwitter oAuth(トークンリクエスト)の使用はiOS 5では機能しません... iOS 5の下にこのコードを保存して、iOS 5+用の新しいTwitter Frameworkを使用するにはどうしたらいいですか?TwitterのiOSバージョンを検出しますか?

iOSのバージョンを検出することはできますか?

ありがとうございます!

+0

iOSバージョンを確認する唯一の時間は、顧客の使用状況を追跡するためです。これは個人識別統計情報ともみなされ、「データ収集の許可を得る」という公正な要求がない限り検討すべきではないことに注意してください。その時点から、第三者には送信しないでください。以下の答えで述べたように、クエリ機能はOSのバージョンではありません。 –

答えて

6

あなたは(ほとんど)iOS(またはフレームワーク)バージョンに照会することは決してありません。それは(通常)あなたが間違った問題を解決していることを意味します。

この場合、「あなたはTwitter.frameworkを使用できますか?あなたはまた、例えば、より低いレベルのフレームワークコンポーネントを確認することができ

if ([TWTweetComposeViewController canSendTweet]) { 
    // Do something 
} 
else { 
    // Use your original code 
} 

if ([TWRequest class]) { 
    // Do something 
} 
else { 
    // Use your original code 
} 

(もちろん、あなたがする必要があります弱いリンクの魔法に

おかげで、あなたのような何かを試すことができますTwitter.frameworkとリンクし、必要なヘッダーを含める)

1
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0) { 
    //tweet 
} 
+0

これは、浮動小数点変換中の文字列切り捨てによる一般的な比較では不満足です。そして、一般的に何らかの理由でsystemVersionを使用するべきではありません。 –

+0

IEEE 754-1985標準によれば、浮動小数点数が7より小さい正の積分値は長く保証されます。これを証明するには、float.hからFLT_DIGの値を出力します。 – jacekmigacz

+0

私たちはさまざまな問題を話していると思います。 NSString * v1 = @ "5.1"; NSString * v2 = @ "5.1.1"; NSLog(@ "%@は%@:%dより大きい、v2、v1、([v2 floatValue]> [v1 floatValue]))); 2012-04-04 01:41:44.795 VersionTest [3624:f803] 5.1.1は5.1:0より大きい –

0

Twitterクラスがインストールされているかどうかを検出する:

if (NSClassFromString(@"TWTweetComposeViewController")) { 
    //use Twitter Framework 
} 

フレームワークのリストでTwitterフレームワークをオプションにすることを忘れないでください。

+0

現代のランタイムでは不要です。弱いリンクだけのフレームワーク。こうすることで、タイプミスなどのコンパイル時のチェックも可能になります。 –

1

まず最初に、他の回答が正しいです。機能が存在するかどうかを確認するには、iOSのバージョン番号を使用しないでください。

しかし、実際にiOSのバージョンを確認するのに十分な理由がある場合は、iOSのバージョン番号を確認するための私の常時お気に入りの回答はthis StackOverflow answerです。とてもエレガントです。

関連する問題