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