kCFCoreFoundationVersionNumberのススメ

iOSのバージョンを判定するのには二通り程あって、UIDeviceから取得する方法

float iOSVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
と、kCFCoreFoundationVersionNumberを使うやり方があります。
kCFCoreFoundationVersionNumber >= 550.52 //550.52はiOS 4.2の値

ちなみにfloatValue使うと小数点2個は取れないので5.1.1は5.100000になります。kCFCoreFoundationVersionNumberも3項目のバージョンでの値に変更はないため、3項目までちゃんと取る場合はNSNumericSearchできちんと比較する必要があります。

で、tweakのバージョン判定では2項目までで十分な事が多いのでkCF~の方がオススメです。うっかりspringboardが対象のtweakのconstructorでUIDevice使うと危険なので。UIDeviceを使ってはいませんが、iOS5が出た当初に発現していた画面1/4問題は、例えばLastAppでは以下のバージョン判定の1行が原因で起こっていました。

isFirmware3x_ = (class_getInstanceMethod(objc_getClass("SBApplication"), @selector(pid)) != NULL);
これを以下に書き換えることで対処したと思われます。
isFormware3x_ = (kCFCoreFoundationVersionNumber < 550.32) ? YES : NO; // 550.32はiOS 4.0の数字

新OSが出た際の確認方法は/System/Library/Frameworks/CoreFoundation.framework/Info.plistのCFBundleVersionから確認できます。iOS5.1.xは690.10ですね。

2.0からの番号はこのあたりを参考に。chpwn / IconSupport - Firmware.h