Xcode 4.2 - pernyataan '...' tidak akan terlihat di luar peringatan fungsi ini

161

Saya menggunakan kelas Apple Reachability dari Apple Sample code Reachability

di Xcode 4.2 dan kompiler Apple 3.0 baru saya mendapat peringatan di kelas ini itu

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

deklarasi 'struct sockaddr_in ' tidak akan terlihat di luar fungsi ini *

Saya tidak pandai klasik C%) jadi saya tidak mengerti bagaimana saya bisa memperbaiki peringatan ini atau mungkin saya bisa mengabaikannya sama sekali.

Terima kasih

Sergnsk
sumber
2
Lihat juga: stackoverflow.com/a/8684721/449161
Ben Flynn

Jawaban:

353

Tambahkan #import <netinet/in.h>dalam Reachability.h untuk lolos dari ini

Saurabh
sumber
7
Saya lupa memformatnya sebagai kode dan stackoverflow dihapus <netinet / in.h> untuk saya :(
Saurabh
3
Dan berhati-hatilah: impor sudah ada di Reachability.m - tetapi juga diperlukan di Reachability.h
brainray
8
#include, Tidak #import. Karena perbedaan halus antara header C dan Objective-C, Anda hanya boleh menggunakan #importuntuk Objective-C. Pure C harus terus digunakan #include.
Jonathan Grynspan
7
#importakan mencegah tajuk dibawa ke unit kompilasi dua kali. #includeakan mengizinkannya (dan kemudian menjaga makro digunakan untuk mencegah simbol duplikat.) Ada beberapa header yang diharapkan dibawa dua kali.
Jonathan Grynspan
6
Alih-alih #import, Anda juga dapat melakukan deklarasi maju dari struct yang hilang. Tambahkan satu "struct sockaddr_in;" baris ke file .h
fishinear