Xcode 4.2 - la dichiarazione di '…' non sarà visibile al di fuori di questo avviso di funzione


161

Uso la classe di raggiungibilità di Apple dal codice di esempio raggiungibilità di Apple

in Xcode 4.2 e nel nuovo compilatore di Apple 3.0 ricevo un avviso in questa classe

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

la dichiarazione di 'struct sockaddr_in ' non sarà visibile al di fuori di questa funzione *

Non sono bravo con il classico C%), quindi non capisco come posso correggere questo avviso o come posso ignorarlo.

Grazie


Risposte:


353

Aggiungi #import <netinet/in.h>Reachability.h per cavartela


7
Ho dimenticato di formattarlo come codice e stackoverflow rimosso <netinet / in.h> per me :(
Saurabh

3
E attenzione: l'importazione esiste già in Reachability.m - ma è necessaria anche in
Reachability.h

8
#includeno #import. A causa delle sottili differenze tra le intestazioni C e Objective-C, dovresti usare solo #importper Objective-C. Pure C dovrebbe continuare a utilizzare #include.
Jonathan Grynspan,

7
#importimpedirà che un'intestazione venga portata in un'unità di compilazione due volte. #includelo consentirà (e quindi le macro di guardia vengono utilizzate per evitare simboli duplicati). Ci sono alcune intestazioni che prevedono di essere portate due volte.
Jonathan Grynspan,

6
Invece di #import, puoi anche fare una dichiarazione in avanti della struttura mancante. Aggiungi un singolo "struct sockaddr_in;" linea al file .h
fishinear
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.