代码之家  ›  专栏  ›  技术社区  ›  MrHen

禁止特定于行的Xcode编译器警告

  •  8
  • MrHen  · 技术社区  · 15 年前

    类似 Ben Gottlieb's question ,我有一些不赞成的电话在窃听我。是否有按行禁止警告的方法?例如:

     if([[UIApplication sharedApplication]
      respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
    
      [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
     } else {
      [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; //causes deprecation warning
     }
    

    我只关心那条线。我不想关机 全部的 折旧警告。我也不想做这样的事 suppress specific warnings by file .

    在其他一些情况下,我希望将特定行标记为OK,即使编译器生成了一个警告。我基本上想让我的团队知道这个问题已经被解决了,并且不再一遍又一遍地被关于同一条线的窃听。

    2 回复  |  直到 13 年前
        1
  •  5
  •   mbauman    15 年前

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

    @protocol UIApplicationDeprecatedMethods
    - (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated;
    @end
    

    if([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
    } else { 
        id<UIApplicationDeprecatedMethods> app = [UIApplication sharedApplication];
        [app setStatusBarHidden:YES animated:NO];
    }
    
        2
  •  0
  •   user102008    13 年前
    if([[UIApplication sharedApplication]
      respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
    
      [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
     } else {
      [(id)[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
     }
    
    推荐文章