Xcode 4.2 - deklaracja „…” nie będzie widoczna poza tym ostrzeżeniem funkcji


161

Używam klasy Apple Reachability z Apple Sample Code Reachability

w Xcode 4.2 i nowym kompilatorze Apple 3.0 dostaję ostrzeżenie w tej klasie, że

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

deklaracja 'struct sockaddr_in ' nie będzie widoczna poza tą funkcją *

Nie jestem dobry w klasycznym C%), więc nie rozumiem, jak mogę naprawić to ostrzeżenie, a może w ogóle mogę je zignorować.

Dzięki


Odpowiedzi:


353

Dodaj #import <netinet/in.h>Reachability.h, aby uciec od tego


7
Zapomniałem sformatować go jako kod i usunięto przepełnienie stosu <netinet / in.h> dla mnie :(
Saurabh

3
I uważaj: import istnieje już w Reachability.m - ale jest również potrzebny w Reachability.h
brainray

8
#includenie #import. Ze względu na subtelne różnice między nagłówkami C i Objective-C, należy używać tylko #importdla Objective-C. Pure C powinien nadal być używany #include.
Jonathan Grynspan,

7
#importzapobiegnie dwukrotnemu przeniesieniu nagłówka do jednostki kompilacji. #includepozwoli na to (a następnie makra ochronne są używane do zapobiegania zduplikowanym symbolom). Istnieje kilka nagłówków, które spodziewają się , że zostaną wprowadzone dwukrotnie.
Jonathan Grynspan,

6
Zamiast #import możesz również wykonać deklarację do przodu brakującej struktury. Dodaj pojedynczy „struct sockaddr_in;” wiersz do pliku .h
fishinear,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.