最近はavailable一択。
Objective-C
if (@available(iOS 11, *)) {
// Use iOS 11 APIs.
} else {
// Alternative code for earlier versions of iOS.
}
Swift
if #available(iOS 11, *) {
// Use iOS 11 APIs.
} else {
// Alternative code for earlier versions of iOS.
}
最近の広告関連で、ATTrackingManager関連を呼び出す場合は、
//Obj-C
if (@available(iOS 14.5, *)) {
// ATT関連処理
}else{
}
14.5以降とするとか。
上記から呼び出す別ファイルの関数などを、丸々対応させたい場合も、同じような記述で使えます。対象バージョンで呼べない関数があると、Xcode上で警告が出て、補完もしてくれますが。
以下を参考。
Appleのサイト
Marking API Availability in Objective-C