快速消除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呢?
快速消除IOS 版本升级带来的警告的更多相关文章
- fir.im Log Guru 正式开源,快速找到 iOS 应用无法安装的原因
很开心的宣布 Log Guru 正式开源! Log Guru,是 fir.im 开发团队创造的小轮子,用在 Mac 电脑上的日志获取,Github 地址:FIRHQ/LogGuru. Log Guru ...
- 快速掌握iOS API的一个小技巧
快速掌握iOS API的一个小技巧 周银辉 iOS SDK和Developer Library中提供了各个类以及函数的帮助文档,这很棒,但要想了解整个库的大体结构(比如UIKit下有哪些类,他们的继承 ...
- iOS常用的忽略警告
在iOS开发过程中,偶尔会碰到一些编译器警告,如果能够确定该警告不会影响到程序的正常运行,则可以手动告诉编译器忽略掉这个警告 iOS常用的忽略警告类型: 1.方法弃用警告 #pragma clang ...
- 快速定位iOS线上BUG在哪个控制器崩溃
快速定位iOS线上App崩溃在哪个控制器里面,需要和后台配合使用 下载本SDK并手动添加到项目里 新建所有的页面都继承于YZViewController 在AppDelegate的didFinishL ...
- iOS 警告收集快速消除
1.ld: warning: directory not found for option 去掉警告的方法 工程老是提示ld: warning: directory not found for opt ...
- 快速集成iOS基于RTMP的视频推流
前言 这篇blog是iOS视频直播初窥:<喵播APP>的一个补充. 因为之前传到github上的项目中没有集成视频的推流.有很多朋友简信和微博上问我推流这部分怎么实现的. 所以, 我重新集 ...
- ios系统 处理内存警告
iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息.收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露 ...
- iOS:提示框(警告框)控件UIActionSheet的详解
提示框(警告框)控件2:UIActionSheet 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能.它与导航栏类似,它继承自UIView. 风格类型: ...
- 支付宝快速集成ios
看一下这篇文章,非常不错,并在此感谢这篇文章的作者. 惯例,先写出嵌入支付宝的核心代码 - (IBAction)payWithAli:(UIButton *)sender { //生成订单信息NSSt ...
随机推荐
- java 枚举(括号赋值)
详解在这里 要注意的是: 1. 通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错2. 赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值:如果不赋值则不能写构造器,赋值编译也出错 ...
- Leveraging the Power of Asynchrony in ASP.NET [转]
Asynchronous programming has had a lot of attention in the last couple of years and there are two ke ...
- FZU 2212 Super Mobile Charger 第六届福建省赛
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2212 题目大意: 现在有n个手机,一个电量为m%(百分之m)的万能充电宝 然后输入n个手机的现有电量(百分之a ...
- 传输层之UDP
1.UDP的定义 跟tcp一样,我们把她定义为: 无连接的,不可靠的,用户数据报协议. 从中我们看到了:无连接和不可靠,这是它的缺点也是它的优点,因为他选择了性能,舍弃了部分安全,节约资源,速度快. ...
- Java中重载和重写的区别
重载 overloading 1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型.重载是一个类中多态性的一种表现. 2) Java的方法重载,就 ...
- zabbix邮件告警
Zabbix邮件告警看了很多文档,写的那叫一个蛋疼,明明没有发出去邮件,硬要糊弄观众,我也跟着被糊弄. 操作系统环境: CentOS 5.5 x84_64位 Zabbix版本2.2.3 Web服务器: ...
- Ubuntu 如何使用apt命令安装、升级、卸载软件
apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸载软件或操作系统. apt-get命令一般需要root权限执行,所以一般跟着su ...
- Yii 打造带有缓存功能的AR
继承AR类 重写 findByPk方法为pk 还有afterSave afterDelete 通过对象主键缓存其属性 在insert update delete 操作时候 都会自动更新缓存还是挺方 ...
- nyoj 353 3D dungeon
3D dungeon 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 You are trapped in a 3D dungeon and need to find ...
- oracle Imp和exp以及导入常见的错误
一 1) 数据库对象已经存在 一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等; 数据库对象已经存在, 按缺省的imp参数, 则会导入失败 如果用了参数ignore=y ...