Xcode 4.2 - Die Deklaration von '…' ist außerhalb dieser Funktionswarnung nicht sichtbar

161

Ich verwende die Apple Reachability-Klasse aus dem Apple-Beispielcode Reachability

In Xcode 4.2 und dem neuen Apple 3.0 Compiler bekomme ich in dieser Klasse eine Warnung, dass

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

Die Deklaration von 'struct sockaddr_in ' ist außerhalb dieser Funktion nicht sichtbar *

Ich bin nicht gut in klassischem C%), daher verstehe ich nicht, wie ich diese Warnung beheben kann oder ob ich sie überhaupt ignorieren kann.

Vielen Dank

Sergnsk
quelle
2
Siehe auch: stackoverflow.com/a/8684721/449161
Ben Flynn

Antworten:

353

Fügen Sie #import <netinet/in.h>Reachability.h hinzu, um damit durchzukommen

Saurabh
quelle
7
Ich habe vergessen, es als Code zu formatieren, und der Stapelüberlauf hat <netinet / in.h> für mich entfernt :(
Saurabh
3
Und seien Sie
vorsichtig
8
#includenicht #import. Aufgrund subtiler Unterschiede zwischen C- und Objective-C-Headern sollten Sie nur #importObjective-C verwenden. Pure C sollte weiterhin verwendet werden #include.
Jonathan Grynspan
7
#importverhindert, dass ein Header zweimal in eine Kompilierungseinheit gebracht wird. #includewird es zulassen (und dann werden Schutzmakros verwendet, um doppelte Symbole zu verhindern.) Es gibt einige Header, die voraussichtlich zweimal eingefügt werden.
Jonathan Grynspan
6
Anstelle von #import können Sie auch eine Forward-Deklaration der fehlenden Struktur durchführen. Fügen Sie eine einzelne "struct sockaddr_in;" Zeile zur .h-Datei
fishinear