125 votes

Est-il un moyen de supprimer les avertissements dans Xcode?

Est-il un moyen de supprimer les avertissements dans Xcode?

Par exemple je suis à l'appel d'une méthode non documentée, et puisque la méthode n'est pas dans l'en-tête, je reçois un avertissement sur la compilation. Je sais que je peux l'ajouter à ma tête pour arrêter l'avertissement, mais je me demande si il existe un moyen autre que de l'ajouter à l'en-tête (pour que je puisse conserver les en-têtes propre et standard) pour supprimer l'avertissement? Pragma ou quelque chose?

148voto

robottobor Points 4561

Au diable les avertissements sur un fichier par fichier, en utilisant Xcode 3 et llvm-gcc-4.2, vous pouvez utiliser:

#pragma GCC diagnostic ignored "-Wwarning-flag"

Où avertissement nom est gcc indicateur d'avertissement.

Ceci remplace le drapeau d'avertissement sur la ligne de commande. Il ne fonctionne pas avec tous les avertissements. Ajoutez -fdiagnostics-spectacle-option pour votre CFLAGS et vous pouvez voir le drapeau que vous pouvez utiliser pour désactiver cet avertissement.

50voto

geekay Points 824

il y a un moyen plus simple de supprimer Inutilisé de la variable de mises en garde:

#pragma unused(varname)

EDIT: source: http://www.cocoadev.com/index.pl?XCodePragmas

Mise à JOUR: Je suis venu à travers avec une nouvelle solution, plus robuste

  1. Ouvrez le Projet > Modifier la Cible Active> onglet créer.
  2. En vertu de l' User-Defined: trouver (ou créer si vous ne trouvez pas un )la clé : GCC_WARN_UNUSED_VARIABLE ensemble pour NO.

EDIT-2 Exemple:

BOOL ok = YES;
NSAssert1(ok, @"Failed to calculate the first day the month based on %@", self);

le compilateur inutilisés variable avertissement pour ok.

Solution:

BOOL ok = YES;
#pragma unused(ok)
NSAssert1(ok, @"Failed to calculate the first day the month based on %@", self);

PS: Vous pouvez également régler/réinitialiser les autres d'avertissement: GCC_WARN_ABOUT_RETURN_TYPE : YES/NO

28voto

Claptrap Points 21299

Afin de réduire un avertissement pour un fichier individuel effectuer les opérations suivantes:

sélectionnez le fichier dans le projet xcode. appuyez sur obtenir des informations accédez à la page options de génération entrez -Wno - de nier un avertissement:

-Wno-

par exemple

-Wno-inutilisé-paramètre

Vous pouvez obtenir le nom de l'avertissement si vous regardez sur le projet, les paramètres de regarder la GCC avertissements situé au bas de l'onglet création de page, en cliquant sur chaque avertissement, il vous indique l'avertissement de nom de paramètre:

par exemple

Avertir à chaque fois qu'un paramètre de la fonction est inutilisés à part sa déclaration. [GCC_WARN_UNUSED_PARAMETER, -Wunused-paramètre]

6voto

Matt Gallagher Points 10431

Avec Objective-C, un certain nombre d'erreurs graves n'apparaissent que comme des avertissements. Non seulement je ne jamais désactiver les avertissements, j'ai l'habitude de tourner sur "Traiter les avertissements comme des erreurs" (-Werror).

Chaque type d'avertissement dans votre code peut être évité en faisant les choses correctement (normalement en jetant des objets pour le type correct) ou par déclarer des prototypes lorsque vous en avez besoin.

5voto

Mark Pauley Points 817

Pour se débarrasser de l'avertissement: essayez de créer une catégorie de l'interface de l'objet en question

@interface NSTheClass (MyUndocumentedMethodsForNSTheClass)

-(id)theUndocumentedMethod;
@end
...

@implementation myClass : mySuperclass

-(void) myMethod {
...
   [theObject theUndocumentedMethod];
...
}

En aparté, j'ai fortement déconseiller d'appel sans-papiers méthodes dans le code de la navigation. L'interface peut et va changer, et il sera de votre faute.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X