zoukankan      html  css  js  c++  java
  • 快速消除IOS 版本升级带来的警告

    开发中我们经常会遇到这样的情况,我们在IOS 6.0开发的程序,当出现IOS 7.0 或者IOS8.0的时候,我们代码中得某些方法苹果已经不推荐使用了,建议我们改用新的方法。如果我们不更新方法,则会出现警告。如果我们再项目多个文件中大量的使用了该方法,显然一个个的手动更改是不合适的。
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * 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 char * 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呢?




  • 相关阅读:
    poj 2411 Mondriaan's Dream 骨牌铺放 状压dp
    zoj 3471 Most Powerful (有向图)最大生成树 状压dp
    poj 2280 Islands and Bridges 哈密尔顿路 状压dp
    hdu 3001 Travelling 经过所有点(最多两次)的最短路径 三进制状压dp
    poj 3311 Hie with the Pie 经过所有点(可重)的最短路径 floyd + 状压dp
    poj 1185 炮兵阵地 状压dp
    poj 3254 Corn Fields 状压dp入门
    loj 6278 6279 数列分块入门 2 3
    VIM记事——大小写转换
    DKIM支持样本上传做检测的网站
  • 原文地址:https://www.cnblogs.com/dengzhuli/p/4415566.html
Copyright © 2011-2022 走看看