31 votes

Je reçois des avertissements du compilateur avec AFNetworking, mais cela ne devrait pas être le cas. Comment je le répare?

Je suis à l'aide de la plupart des excellentes AFNetworking bibliothèque dans un projet que je suis actuellement à la mise à niveau vers iOS 6. Je suis dans le milieu de la mise à niveau, grignotage en bas de la bande de mises en garde que je reçois lors de la compilation contre le kit SDK d'iOS 6.

AFNetworking me donne deux avertissements dans toutes les cibles:

SystemConfiguration framework not found in project, or not included in
precompiled header. Network reachability functionality will not be available.

et

MobileCoreServices framework not found in project, or not included in
precompiled header. Automatic MIME type detection when uploading files
in multipart requests will not be available.

Voici la chose, cependant: ces deux - libraries sont ajoutés dans toute ma targets. J'aimerais me débarrasser de ces avertissements de la bonne façon; je n'ai pas modifier l' AFNetworking fichiers. Je soupçonne que c'est Xcode stupide. C'est certes une petite chose, mais en laissant les avertissements autour est une mauvaise pratique.

Comment puis-je supprimer ces avertissements?

J'ai essayé de redémarrer Xcode et le nettoyage. Les deux ne fonctionnent pas.

75voto

Keith Smiley Points 9760

Je ne suis pas sûr si vous êtes en utilisant CocoaPods ou pas, mais c'est un problème connu en cours de suivi sur l'AFNetworking page Github.

J'ai été en mesure de résoudre ce problème en ajoutant la bonne déclarations d'importation directement à ma " PROJECTNAME-Préfixe.pch là, je l'ai changé pour cela.

#ifdef __OBJC__
  #import <UIKit/UIKit.h>
  #import <SystemConfiguration/SystemConfiguration.h>
  #import <MobileCoreServices/MobileCoreServices.h>
#endif

Si vous avez quelque chose d'autre, il ne le supprime pas. Il suffit d'ajouter les importations pour SystemConfiguration et MobileCoreServices.

Pour OS X:

#ifdef __OBJC__
    #import <Cocoa/Cocoa.h>
    #import <SystemConfiguration/SystemConfiguration.h>
    #import <CoreServices/CoreServices.h>
#endif

1voto

TCB13 Points 943

Vous avez déjà répondu à cette question, mais si vous développez un outil de ligne de commande susceptible d'être compilé à la fois pour OSX et iOS (vous n'êtes certainement pas sur AppStore), vous pouvez ajouter ceci:

 #ifdef __OBJC__
    #import <Foundation/Foundation.h>
    #import <SystemConfiguration/SystemConfiguration.h>

    #if TARGET_OS_IPHONE
        #import <MobileCoreServices/MobileCoreServices.h>
    #elif TARGET_OS_MAC
        #import <CoreServices/CoreServices.h>
    #endif

#endif
 

En évaluant la cible que vous compilez, elle inclura les fichiers appropriés.

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