iphone slider Suprimindo Avisos Descontinuados no Xcode




slider ios guideline (8)

Com todos os SDKs flutuando, é útil criar vários SDKs e plataformas. No entanto, saltando de 3.2 para 3.0 e mesmo ocasionalmente 2.x, freqüentemente recebo avisos preteridos envolvendo métodos que foram alterados ou foram substituídos:

warning: 'UIKeyboardBoundsUserInfoKey' is deprecated.

Como eu ainda quero manter a compatibilidade com sistemas operacionais mais antigos, e também estou me esforçando para remover o 'ruído' durante a criação, existe uma maneira de desativar ou desativar esses avisos?


Como ainda não posso adicionar um comentário ao post do @samiq, acho que vou expandi-lo. A entrada mencionou a diretiva antes de uma função / método em que você usa coisas obsoletas. Então você pode restaurar a configuração anterior após a definição do final da função:

#pragma GCC diagnostic push 
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- (void) methodUsingDeprecatedStuff {
    //use deprecated stuff
}
#pragma GCC diagnostic pop

Se você quiser uma verificação geral para todos os tipos de depreciação em um pedaço de código. Por favor, use o sinalizador -Wdeprecated como abaixo:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated"
- (void) methodUsingDeprecatedStuff {
    //use deprecated stuff
}
#pragma clang diagnostic pop

Se você deseja silenciar o aviso Implementando o método reprovado ou Implementando classe reprovada , use:

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wdeprecated-implementations"
    // code
    #pragma clang diagnostic pop


Para desativar o aviso do arquivo de cabeçalho de terceiros, adicione a seguinte linha na parte superior do arquivo

#pragma clang system_header

Tente -Wno-deprecated-declarations , ou a sua definição correspondente no Xcode, GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS (pro dica: basta digitar "depreciado" nas configurações de compilação para encontrar a configuração específica para este aviso).

Versões atuais do Xcode (por exemplo, Xcode 9.2):

Versões antigas do Xcode (por exemplo, Xcode 2.x, 3.x):


Você também pode suprimir avisos por arquivo usando

#pragma GCC diagnostic ignored "-Wdeprecated-declarations"

o que, por sua vez, faz com que seja uma prática um pouco melhor do que apenas suprimir todos os avisos uma vez e juntos ... afinal, você sabe o que está fazendo.


O Clang fornece um recurso interessante que torna a etapa de "restauração" no post do @manicaesar independente do estado de aviso inicial:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (void) methodUsingDeprecatedStuff {
    //use deprecated stuff
}
#pragma clang diagnostic pop

Para citar o manual do Clang:

Além de todas as funcionalidades fornecidas pelo pragma do GCC, o Clang também permite que você pressione e insira o estado de aviso atual. Isso é particularmente útil ao gravar um arquivo de cabeçalho que será compilado por outras pessoas, porque você não sabe com quais sinalizadores de aviso elas são construídas.


Em suas configurações de construção, localize Deprecated Functions .







warnings