废弃(Deprecated)API标记,能在项目中起到优化的能力,针对那种该方法还能使用但不急于替换或提示其他开发人员,特别是自己写的SDK被其他人引用时提醒使用者使用其他方法。
还有我们能看见苹果在引入一个更优秀的方法或类时,会对废弃的类或方法进行标记,当我们看见出现警告时,会阅读警告来替换它推荐的类或方法。
举例:
NS_DEPRECATED_IOS(2_0, 6_0)
在iOS中,此方法在2.0 被引用, 将在6.0后废弃此方法。因此需要找到它推荐的方法来进行替换。
NS_AVAILABLE(10_8, 6_0)
Mac 与iOS中,Mac10.8以上才能使用,iOS6.0以上才能使用
NS_DEPRECATED(10_0, 10_6, 2_0, 4_0)
Mac 与iOS中,Mac在10.0被引用,10.6后被弃用,iOS在2.0被引用,4.0后被弃用。
+(void)test NS_DEPRECATED_IOS(2_0, 8_0,"use test1");
在iOS中,此类在2.0被引用,8.0被弃用,后面注释使用“test1”方法
1. 标记弃用的方法
通常我会在弃用的方法下进行标记,在进行清理时全局搜索“【可弃用】”,排查。另外我还使用“【可优化】”,“【可删除】”。进初始标记(明知道此方法有问题,但技术不够或没时间修改时,暂时性标记)。
#pragma mark -【可弃用】
+ (void)deleteKeyData:(NSString *)service;
2. 替换方法的警告说明
加上解释后,在引用此代码时,会出现警告
DEPRECATED_MSG_ATTRIBUTE()
+(NSString *)getUUID DEPRECATED_MSG_ATTRIBUTE("Please use [YKKeyChainStore getUUIDAtIndex:]");
你可以使用DEPRECATED联想查看更多关于DEPRECATED的宏定义。