Как избавиться от предупреждения «Результат вызова ‘resignFirstResponder ()’ не используется»?

#ios #swift #warnings

#iOS #swift #предупреждения

Вопрос:

Поскольку я преобразовал свой код в Swift 3 , я получал предупреждение всякий раз, когда я не использую результат UITextField resignFirstResponder() метода.

введите описание изображения здесь

Ошибок нет (по крайней мере, на данный момент), но мне не очень нравится получать подобные предупреждения. Итак, мои вопросы:

  • Должен ли я на самом деле использовать результаты такого рода вызовов? И если ответ да, что мне с ними делать?
  • Если ответ отрицательный: как я могу избавиться от этих предупреждений?

Ответ №1:

Как Shaggy D уже было сказано, эти предупреждения можно безопасно игнорировать.

Если вы вообще не хотите видеть их в своем проекте, вы можете установить GCC_WARN_UNUSED_VALUE значение false/NO in Build Settings .

Или просто добавьте let _ = перед resignFirstResponder() :

 let _ = resignFirstResponder()
  

Ответ №2:

1) Вы можете безопасно игнорировать результат

2) Поместите эти строки перед вызовом :

 #pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-result"
  

Комментарии:

1. #pragma ? В Swift ?

2. @user28434 Уверен в swift! Вам нужно создать . файл pch добавьте его в настройки сборки и добавьте туда все, что угодно, и это работает

Ответ №3:

resignFirstResponder вернет false, когда объект, который вы просите уйти в отставку, отказывается это делать. Например, текстовое поле вернет false, если оно находится в процессе редактирования, и я должен представить, что строка поиска в вашем примере будет делать то же самое. Следовательно, если вы проигнорируете результат этих вызовов, вы можете попасть в небольшой беспорядок.

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

В этой ситуации я бы посоветовал вам добавить некоторый код, чтобы учесть вероятность отказа панели поиска отказаться от статуса первого ответчика.

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