iOS屏蔽警告不常用方法

October 12, 2015

在iOS开发的过程中,我们经常会被一些恼人的warning影响心情,当然常用的屏蔽warning的方法相信大家也已经掌握了不少,现在这里列举几个不常用的仅供大家参考

当使用cocoapods管理第三方库时,第三方库的的warning怎么办?

这个警告,我们时常无能感到很无能为力,因为总不能去依次修改第三方库里的代码来消除警告吧。其实看过cocoapods手册的同学应该会有所了解,只需要在我们的Podfile文件里添加一句,只是一句就可以解决

inhibit_all_warnings!

当我们定义一个变量或者调用一个有返回值的方法却没有使用该值时怎么办?

直接上代码吧

//.h文件
@interface ViewController : UIViewController {
NSString *a;
NSString *b; //由于只使用了a,而没使用b,则会报警告unused varible
}
@end

//.m文件
@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
//这里只使用了成员变量a
NSLog(@"%@",a);
}
@end

为了避免上述警告,我们可以很简单的给变量前加__unused修饰 还有一种情况用下述方法即可

__unused BOOL result = [[TencentOAuth alloc] initWithAppId:appKey andDelegate:self];

###如何屏蔽代码段能的警告?

相信#pragma <#arguments#>大家都不会陌生,这里我们就要借助他来屏蔽对应的警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
//包含警告的代码段
#pragma clang diagnostic pop

切记一定是最小权原则,屏蔽完成及时释放屏蔽
“-Wdeprecated-declarations”可能会有同学不清楚,这个是怎么来的呢?下来我简单的描述的怎么获取警告的类型。 首先在navigator切换到警告或错误tab,然后选择我们关注的警告 整体框架 右键,弹出如下窗口 整体框架 选择Reveal Log跳转到如下log页面 整体框架 红色部分就是该警告对应的警告类型,添入即可

Comments