iPhoneOS 3.0 SDK のUIScrollView 挙動の変化
iPhoneOS2.2.1 までは touchesBegin: → touchesMoved: → touchesEnded: くらいまで、子クラスで取れる。
しかも何故か、touchesEnded: が2回起きる。
iPhoneOS 3.0 SDK でコンパイルすると、touchesEnded: が1回呼ばれるだけ。
直ったといえば聞こえはいいが、まだ 2.2.1 向けビルドしないと審査通らない。
どうするか悩んだ挙句、以下の選択肢があると。
UIDevice 使う
普通の手段で OS のバージョン拾う。
NSString* version = [[UIDevice currentDevice] systemVersion];
この方法だと、シミュレータバージョンを変えたときにどうにかなるんだが、
ビルドの状態まで把握できない。
加えて文字列だから、「バージョン XX 以上」とかやるのがだるい*1。
__IPHONE_OS_VERSION_MIN_REQUIRED の値を参照
こんなマクロがあって、iPhoneOS 3.0 だと、「30000」に化ける。
だから、この値以上なら、、、、と指定する。
ただし、アンドキュメントなので、自己責任で。
*1:compare とか使えばいいんだろうけど