Xcode 4.2 - la déclaration de '…' ne sera pas visible en dehors de cet avertissement de fonction

161

J'utilise la classe d'accessibilité Apple de l'exemple de code Apple Accessibilité

dans Xcode 4.2 et le nouveau compilateur Apple 3.0, je reçois un avertissement dans cette classe que

+ (Reachability*) reachabilityWithAddress: (const struct sockaddr_in*) hostAddress;

la déclaration de 'struct sockaddr_in ' ne sera pas visible en dehors de cette fonction *

Je ne suis pas bon en C% classique) donc je ne comprends pas comment je peux corriger cet avertissement ou peut-être que je peux l'ignorer du tout.

THX

Sergnsk
la source
2
Voir aussi: stackoverflow.com/a/8684721/449161
Ben Flynn

Réponses:

353

Ajoutez #import <netinet/in.h>Reachability.h pour vous en sortir

Saurabh
la source
7
J'ai oublié de le formater en tant que code et stackoverflow supprimé <netinet / in.h> pour moi :(
Saurabh
3
Et prenez garde: l'importation existe déjà dans Reachability.m - mais elle est également nécessaire dans
Reachability.h
8
#includenon #import. En raison des différences subtiles entre les en-têtes C et Objective-C, vous ne devez utiliser que #importpour Objective-C. Pure C devrait continuer à être utilisé #include.
Jonathan Grynspan
7
#importempêchera un en-tête d'être introduit deux fois dans une unité de compilation. #includel'autorisera (et ensuite les macros de garde sont utilisées pour empêcher les symboles en double.) Certains en-têtes s'attendent à être introduits deux fois.
Jonathan Grynspan
6
Au lieu de #import, vous pouvez également faire une déclaration directe de la structure manquante. Ajoutez un seul "struct sockaddr_in;" ligne vers le fichier .h
fishinear