最近は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