UigesturerCognizerのチェックが3.2で導入されたときにiPhone OS 3.0でそれを見つけるのはなぜですか?

StackOverflow https://stackoverflow.com/questions/3695404

質問

初めてUigesturerCognizerを使用していますが、アプリをiOS 3.0以降に実行したいと考えています。 AppleはライブラリがiOS 3.2で利用可能であることを明確に述べているため、後で次のコードを使用しました。

// Make sure that Gesture recognition technology is supportted by the device SDK version
if ([UIGestureRecognizer instancesRespondToSelector:@selector(initWithTarget:action:)])
{
    [self initGestureRecognizers];
}

驚くべきことに、私が持っている唯一のターゲットでアプリを実行すると、SDK3.0を実行すると、正常に動作します。


条件を次のものに置き換えました。

if ([[[UIDevice currentDevice] systemVersion] compare:@"3.2"] != NSOrderedAscending) 
{ 
    [self initGestureRecognizers]; 
}

私はそれについてコメントを受けたいです。

ありがとう

役に立ちましたか?

解決

これはおそらく、UigesturerCognizerが3.2より前にプライベートと見なされていたためです。 3.0未満のuigesturerecognizerを使用している場合、いくつかのものがバギーである場合、または予想どおりに機能しないかどうか驚かないでください。

他のヒント

すべてのiOSリリースには、文書化されていないAPIがたくさんあり、Appleはこれに言及しています。ただし、これらの文書化されていないAPIの使用は、アプリストアの拒否の根拠です。 OSのリリース/改訂版で文書化されていないAPIを使用することを拒否するリスクがあるかもしれませんが、どちらもアプリがサポートしている別のもので文書化されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top