NS_AVAILABLE_IOS(5_0)
這個(gè)方法可以在iOS5.0及以后的版本中使用收恢,如果在比5.0更老的版本中調(diào)用這個(gè)方法,就會引起崩潰全谤。
NS_DEPRECATED_IOS(2_0, 6_0)
這個(gè)宏中有兩個(gè)版本號褒颈。前面一個(gè)表明了這個(gè)方法被引入時(shí)的iOS版本,后面一個(gè)表明它被廢棄時(shí)的iOS版本刷袍。被廢棄并不是指這個(gè)方法就不存在了,只是意味著我們應(yīng)當(dāng)開始考慮將相關(guān)代碼遷移到新的API上去了樊展。
NS_AVAILABLE(10_8, 6_0)
這個(gè)宏告訴我們這方法分別隨Mac OS 10.8和iOS 6.0被引入呻纹。
NS_DEPRECATED(10_0, 10_6, 2_0, 4_0)
這個(gè)方法隨Mac OS 10.0和iOS 2.0被引入,在Mac OS 10.6和iOS 4.0后被廢棄专缠。
NS_CLASS_AVAILABLE(10_11, 9_0)
這個(gè)類分別隨Mac OS 10.11和iOS9.0被引入雷酪。第一個(gè)代表macOS,第二個(gè)代表IOS涝婉,如果出現(xiàn)NA哥力,則表明在某一個(gè)系統(tǒng)中不可用
NS_ENUM_AVAILABLE(10_11, 9_0)
這個(gè)枚舉分別隨Mac OS 10.11和iOS9.0被引入。
代碼中用到:
if __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000
//設(shè)置便利屬性嘁圈,為了提升速度省骂,只要姓名以及電話屬性
self.contactManager.descriptors = [NSString RITLContactNamePhoneKeys];endif
來控制編譯時(shí)的最小版本為ios9以上,在使用的時(shí)候最住,我們可以直接利用宏 __IPHONE_9_0來控制編譯的最小版本;
__IPHONE_OS_VERSION_MIN_REQUIRED:表示編譯時(shí)的系統(tǒng)版本最低要求怠惶,與之對應(yīng)的為:
__IPHONE_OS_VERSION_MAX_ALLOWED:表示編譯時(shí)最大允許的系統(tǒng)版本號涨缚。
舉例:就上面的一個(gè)宏判斷語句,如果我開發(fā)的時(shí)候用的是ios10的系統(tǒng),那么程序進(jìn)入到if中脓魏,否則走到else中進(jìn)行編譯兰吟。