抑制行特定的XCode编译器警告

MrH*_*Hen 8 iphone xcode objective-c compiler-warnings

Ben Gottlieb提出的问题类似,我有一些不赞成的电话让我烦恼.有没有办法按线抑制警告?例如:

 if([[UIApplication sharedApplication]
  respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {

  [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
 } else {
  [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; //causes deprecation warning
 }
Run Code Online (Sandbox Code Playgroud)

我所关心的只是那条线.我不想关闭所有弃用警告.我也不愿意做一些像文件一样抑制特定警告的事情.

在其他一些情况下,即使编译器生成警告,我也希望将特定行标记为正常.我本质上想让我的团队知道问题已经处理完毕,并且一遍又一遍地停止对同一行进行窃听.

Mat*_* B. 5

Vincent Gable发布了一个有趣的解决方案.简而言之:

@protocol UIApplicationDeprecatedMethods
- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated;
@end
Run Code Online (Sandbox Code Playgroud)
if([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
} else { 
    id<UIApplicationDeprecatedMethods> app = [UIApplication sharedApplication];
    [app setStatusBarHidden:YES animated:NO];
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,但我必须做一个改变.我的代码是:id <UIApplicationDeprecatedMethods> app =(id)[UIApplication sharedApplication]; 否则该行给我一个警告. (2认同)