快速消除iOS 版本升级带来的警告

开发中我们经常会遇到这样的情况,我们在IOS 6.0开发的程序,当出现IOS 7.0 或者IOS8.0的时候,我们代码中得某些方法苹果已经不推荐使用了,建议我们改用新的方法。如果我们不更新方法,则会出现警告。如果我们再项目多个文件中大量的使用了该方法,显然一个个的手动更改是不合适的。

#import <Foundation/Foundation.h>  
  
int main(int argc, const charchar * argv[])  
{  
    [[NSDate date] addTimeInterval:100];//警告⚠️  
    [[NSDate date] addTimeInterval:100];//<span style="font-family: Arial, Helvetica, sans-serif;">警告⚠️</span>  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
      
    return 0;  
}  

可以用类别来帮助我们替换方法。新建一个类别。

#import <Foundation/Foundation.h>  
  
@interface NSDate (AddTimeInterval)  
  
-(id) addTimeInterval:(NSTimeInterval) seconds;//旧方法名  
  
@end  

在旧方法的实现中,替换为新方法

#import "NSDate+AddTimeInterval.h"  
  
@implementation NSDate (AddTimeInterval)  
  
-(id) addTimeInterval:(NSTimeInterval) seconds  
{  
    NSDate *date=[self dateByAddingTimeInterval:seconds];//嵌套在旧方法内  
    return date;  
}  
 
@end  

在所有使用旧方法的源文件中,引入头文件,所有警告消除

#import <Foundation/Foundation.h>  
#import "NSDate+AddTimeInterval.h"  
  
int main(int argc, const charchar * argv[])  
{  
    [[NSDate date] addTimeInterval:100];//不再出现警告  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
    [[NSDate date] addTimeInterval:100];  
      
    return 0;  
}  

虽然警告不会对我们程序运行造成影响,但是存在大量的警告确实是一个安全隐患,如果不费多少时间的话,为什么不想办法做到0error 0warning呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 开发中我们经常会遇到这样的情况,我们在IOS 6.0开发的程序,当出现IOS 7.0 或者IOS8.0的时候,我们...
    Icanbe阅读 461评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,232评论 4 61
  • 老王约我去范爷馆子。 杭州的夏天极度闷热。即使到了晚上,走在路上,尤其是西湖边,都能感受到阵阵热意从脚底直冲头顶。...
    tinyeyes_阅读 741评论 2 51
  • 生活总是悄无声息从人身上碾压过去,人们来不及惶恐,来不及挣扎,甚至来不及告别。而能做的无非就是尽力抵抗以至不会让躯...
    4f337bdfd6ad阅读 188评论 0 0