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呢?




  • 相关阅读:
    02-09 对数线性回归(波士顿房价预测)
    02-02 感知机原始形式(鸢尾花分类)
    02-19 k近邻算法(鸢尾花分类)
    02-21 决策树ID3算法
    A-02 梯度下降法
    09-01 Tensorflow1基本使用
    02-34 非线性支持向量机(鸢尾花分类)+自定义数据分类
    [Python]网络爬虫(四):Opener与Handler的介绍和实例应用(转)
    Eclipse+PyDev 安装和配置(转)
    [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容(转)
  • 原文地址:https://www.cnblogs.com/dengzhuli/p/4415566.html
Copyright © 2011-2022 走看看