Подавление строки определенные предупреждения компилятора XCode

Подобный вопросу 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
 }

Все, о чем я забочусь, является той строкой. Я не хочу выключать все предупреждения депрекации. Я также не сделал бы чего-то, любят, подавляют определенные предупреждения файлом.

Было несколько других обстоятельств, где я хотел отметить определенную строку как хорошо даже при том, что компилятор генерирует предупреждение. Я по существу хочу позволить своей команде знать, что проблема была решена и прекращает прослушиваться о той же строке много раз.

8
задан Community 23 May 2017 в 12:04
поделиться

1 ответ

Винсент Гейбл опубликовал интересное решение. Вкратце:

@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];
}
5
ответ дан 5 December 2019 в 23:14
поделиться