2009-02-16 14 views
5

J'ai un projet qui compile avec quelques avertissements. C'est un projet iPhone qui utilise certaines méthodes sur NSDate, qui ne sont apparemment pas les en-têtes du SDK iPhone, mais qui fonctionnent parfaitement. Quand j'appelle ces méthodes que je reçois des avertissements comme:Ignorer les avertissements en permanence

NSDate warnings http://beautifulpixel.com/assets/NSDate_Warnings-20090215-235727.png

Alors, comment puis-je réduire au silence les mises en garde en permanence, afin de dire XCode « il est OK, vraiment. »

Ou comment corriger les avertissements? Ce code fonctionne très bien sur l'appareil et Apple a déjà approuvé une application qui utilise ces mêmes méthodes, donc sûrement je peux obtenir XCode pour comprendre que les méthodes sont vraiment là.

Répondre

3

Vous pouvez écrire une courte extension d'interface au début vous .M fichier pour supprimer ces avertissements

Exemple:

@interface NSDate (SuppressSomWarnings) 
- (void)dateWithNaturalLanguageString:(NSString*)_str; 
@end 
2

Il est étrange, je ne reçois pas d'avertissement quand je tape les deux mêmes lignes ... Avez-vous correctement importé les en-têtes et les cadres dans votre projet?

Je vois qu'ils sont définis dans NSCalendateDate.h, qui est dans Foundation.framework. A défaut, vous pouvez essayer d'inclure les définitions d'interface directement dans votre code, par exemple en haut de votre fichier .m, pour voir si cela supprime les avertissements. (Voir la réponse d'epatel qui est venue pendant que j'écrivais ça!)

+0

Mon Foundation.framework n'a pas ce fichier d'en-tête; seulement NSDate.h (qui manque de ces méthodes) et NSCalendar.h (qui décrit la classe NSCalendar). Pour être clair, c'est un projet iPhone. Je pense que les en-têtes Cocoa définissent ces méthodes très bien, mais pas les en-têtes UIKit. –

+0

Idem pour moi: projet iPhone. J'utilise le dernier SDK pour iPhone 2.2.1. Ce n'est pas normal que ce fichier d'en-tête soit manquant, peut-être que vous devriez essayer de réinstaller xcode ... – squelart

+0

ça semble comme ça ... Merci pour la vérification d'intégrité. –

0

Avez-vous configuré le SDK? Vous pourriez aimer la nouvelle version, mais en utilisant d'anciens fichiers d'en-tête.

+0

Oui, mon Foundation.framework est fourni par le 2.2 SDK. –

8

Je vous recommande fortement de ne pas utiliser ces méthodes. Ce n'est pas parce qu'ils sont déclarés dans le framework Foundation de Mac OS X qu'ils ne sont pas des API privées sur l'iPhone. Apple serait bien dans leurs droits d'arrêter votre application du magasin. De même, rien n'empêche Apple de ranger un peu la Fondation pour un iPhone OS 2.2.2 ou une version ultérieure et de supprimer ces deux méthodes, brisant ainsi votre application.

0

Votre code peut fonctionner dans le simulateur mais fonctionne-t-il au téléphone?

Le simulateur utilise le framework OS X Foundation qui est un sur-ensemble de ce qui est disponible sur l'iPhone.