Динамическая переадресация: подавление предупреждения о неполной реализации

У меня есть class, демонстрирующий некоторые методы, реализация которых обеспечивается внутренним объектом.

Я использую forward invocation для отправки во время выполнения вызова метода для внутреннего объекта, но XCode жалуется, так как не может найти реализацию объявленных методов.

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

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

Мой вопрос заключается в том, существует ли метод отключения предупреждения о Incomplete Implementation в XCode.

Вы можете Incomplete Implementation предупреждения о Incomplete Implementation , добавив

  #pragma clang diagnostic ignored "-Wincomplete-implementation" 

чуть выше @implementation

Надеюсь это поможет

РЕДАКТИРОВАТЬ

После того, как в комментариях сказано, что это не сработало для кого-то, и выяснение причины было потому, что это было другое предупреждение, которое они получали, я немного поиграл и смог решить проблему, поэтому я думал, что буду обновите этот ответ, чтобы включить их, а также для GCC игнорирует. Итак, для вопроса для @Tony следует работать

  #pragma clang diagnostic ignored "-Wprotocol" 

Для тех, кто хочет знать версию компилятора GCC это

  #pragma GCC diagnostic ignored "-Wprotocol" #pragma GCC diagnostic ignored "-Wincomplete-implementation" 

Я также diagnotstic ignores что все эти diagnotstic ignores также могут быть выполнены путем указания параметра для каждого файла, перейдя в XCODE Project >> Target >> Build Phases >> Compile Sources и добавьте флаг компилятора, чтобы вы просто add -Wprotocol или Wincomplete-implementation или любой необходимый флаг компилятора.

Надеюсь, что это обновление поможет всем, если мне больше нужно будет обновить свой ответ.

EDIT 2

Я делал немного больше, копаясь вокруг этого, наткнулся на Руководство пользователя Clang Compliler, поэтому я подумал, что это будет интересно и полезно для всех, кто имеет проблемы в этой области.

Я также нашел другой способ, которым вы можете использовать эти #pragma diagnostic ignores и вы можете push и pop их, чтобы, если вы хотите просто игнорировать определенный раздел файла, а не все, то вы можете сделать следующее

  #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wmultichar" // And pop the warning is gone. char b = 'fa'; #pragma clang diagnostic pop 

Помните, что все эти игнорирования компиляции #pragma могут использоваться с GCC так что выше

  #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmultichar" // And pop the warning is gone. char b = 'fa'; #pragma GCC diagnostic pop 

push и pop похоже, работают со всеми diagnostic ignores я пробовал до сих пор.

Другой

  #pragma clang diagnostic ignored "UnresolvedMessage" #pragma GCC diagnostic ignored "UnresolvedMessage" 

Для подавления неиспользуемых переменных

  #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-variable" NSString *myUnusedVariable; #pragma clang diagnostic pop 

и версия GCC, являющаяся

  #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" NSString *myUnusedVariable; #pragma GCC diagnostic pop 

Еще несколько за игнорирование предупреждений из недоступностиInDeploymentTarget

  #pragma clang diagnostic push #pragma ide diagnostic ignored "UnavailableInDeploymentTarget" leftEdge.barTintColor = rightEdge.barTintColor = self.toolbar.barTintColor; #pragma clang diagnostic pop 

и выполнить утечку электрода

  #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" [target performSelector:cancelAction withObject:origin]; #pragma clang diagnostic pop 

и устаревшие декларации

  #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" button = [[UIBarButtonItem alloc] initWithTitle:buttonTitle style:UIBarButtonItemStyleBordered target:self action:@selector(customButtonPressed:)]; #pragma clang diagnostic pop 

Благодаря DanSkeel вы можете найти весь список здесь

Вы можете объявить методы в интерфейсе classа classа:

 @interface MyClass (ForwardedMethods) - (void)doSomething; @end 

(без реализации для категории). Тогда Xcode больше не будет жаловаться на «неполную реализацию».

  • Как отключить предупреждения GCC для нескольких строк кода
  • Как преднамеренно вызвать пользовательское предупреждение о компиляторе java?
  • Выборочно отключить предупреждения GCC только для части единицы перевода?
  • Как отключить неиспользуемые предупреждения переменных, выходящие из gcc в стороннем коде, который я не хочу редактировать?
  • Что такое "android: allowBackup"?
  • Java Class.cast () против оператора трансляции
  • g ++ Как получить предупреждение об игнорировании возвращаемого значения функции
  • Что случилось с тысячами предупреждений в стандартных заголовках в MSVC -Wall?
  • предупреждение: неявное объявление функции
  • Предупреждение об ошибке «C-style for Statement устарел» в Swift 3
  • Interesting Posts
    Давайте будем гением компьютера.