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


Antworten:


353

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.