最近整理項(xiàng)目中的api掂咒,有些需要?jiǎng)h除的地方毙芜,特意研究了一下iOS中廢棄api的方式间影,做個(gè)記錄颜屠。
NS_AVAILABEL_IOS
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);
這里的NS_AVAILABLE_IOS(5_0)代表在iOS 5.0引入欧募。
NS_AVAILABLE
- (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx NS_AVAILABLE(10_8, 6_0);
這里的NS_AVAILABLE(10_8, 6_0)代表在MAC OS 1.8及iOS 6.0引入压状。
NS_DEPRECATED_IOS
- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 6_0);
這里的NS_DEPRECATED_IOS(2_0, 6_0)代表在iOS 2.0引入,并在iOS 6.0廢棄跟继。這里的廢棄是指api仍可以使用种冬,但應(yīng)該考慮換新的api了。
NS_DEPRECATED
- (void)removeObjectsFromIndices:(NSUInteger *)indices numIndices:(NSUInteger)cnt NS_DEPRECATED(10_0, 10_6, 2_0, 4_0);
這里的NS_DEPRECATED(10_0, 10_6, 2_0, 4_0)代表在Mac OS 10.0和iOS 2.0引入舔糖,在Mac OS 10.6和iOS 4.0被廢棄娱两。
NS_CLASS_AVAILABLE_IOS
NS_CLASS_AVAILABLE_IOS(8_0)
@interface DLMView : UIView
類內(nèi)容...
@end
DLMView這個(gè)類在iOS 8.0中引入。
NS_CLASS_AVAILABLE
NS_CLASS_AVAILABLE(10_6, 4_0)
@interface DLMView : UIView
DLMView這個(gè)類在Mac OS 10.6和iOS 4.0引入
NS_CLASS_DEPRECATED_IOS
NS_CLASS_DEPRECATED_IOS(2_0, 9_0, "UIAlertView is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead") __TVOS_PROHIBITED
@interface UIAlertView : UIView
類內(nèi)容...
@end
代表UIAlertView在iOS 2.0被引入金吗,在iOS 9.0廢棄十兢。
NS_CLASS_DEPRECATED
NS_CLASS_DEPRECATED(10_0, 10_6, 2_0, 4_0, "描述文字")
@interface DLMView : UIView
DLMView在Mac OS 10.0和iOS 2.0引入,并在Mac OS 10.6和iOS 4.0廢棄摇庙。
API_AVAILABLE
API_AVAILABLE(macosx(10.10), ios(8.0))
@interface WKWebView : UIView
API_AVAILABLE(macosx(10.10), ios(8.0))代表下面的API在Mac OS 10.10和iOS 8.0引入旱物。
DEPRECATED_MSG_ATTRIBUTE
iOS對(duì)gcc attribute((deprecated))的宏定義,可以修飾函數(shù)或者是某個(gè)變量卫袒。
- (NSString *)BJCF_separateStringWithStr:(NSString *)str DEPRECATED_MSG_ATTRIBUTE("非通用需求宵呛,各端自行實(shí)現(xiàn),并且這個(gè)方法名 ...");
對(duì)函數(shù)表名此函數(shù)屬性指示存在某個(gè)函數(shù)夕凝,但是如果使用這個(gè)不提倡使用的函數(shù)烤蜕,編譯器必須生成警告;對(duì)變量表名可以使用deprecated變量屬性聲明不提倡使用的變量迹冤,而不會(huì)導(dǎo)致編譯器發(fā)出任何警告或錯(cuò)誤讽营。