UigesturerCognizerのチェックが3.2で導入されたときにiPhone OS 3.0でそれを見つけるのはなぜですか?
-
02-10-2019 - |
質問
初めて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を使用することを拒否するリスクがあるかもしれませんが、どちらもアプリがサポートしている別のもので文書化されています。
所属していません StackOverflow