Xcode 4.2 - объявление «…» не будет видно за пределами этой функции предупреждения


161

Я использую класс Apple Reachability из Apple Пример кода Reachability

в Xcode 4.2 и новом компиляторе Apple 3.0 я получаю предупреждение в этом классе, что

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

объявление 'struct sockaddr_in ' не будет видно за пределами этой функции *

Я не очень хорош в классическом C%), поэтому я не понимаю, как я могу исправить это предупреждение, или, может быть, я могу игнорировать его вообще.

Спасибо


2
Смотрите также: stackoverflow.com/a/8684721/449161
Бен Флинн

Ответы:


353

Добавьте #import <netinet/in.h>в Reachability.h чтобы сойти с рук


7
Я забыл отформатировать его, так как код и stackoverflow удалены <netinet / in.h> для меня :(
Saurabh

3
И будьте осторожны: импорт уже существует в Reachability.m - но он также необходим в
Reachability.h

8
#includeНе #import. Из-за тонких различий между заголовками C и Objective-C, вы должны использовать только #importдля Objective-C. Pure C следует продолжать использовать #include.
Джонатан Гринспан

7
#importпредотвратит перенос заголовка в блок компиляции дважды. #includeразрешит это (а затем защитные макросы будут использованы для предотвращения дублирования символов). Есть несколько заголовков, которые ожидают ввода дважды.
Джонатан Гринспан

6
Вместо #import вы также можете сделать предварительное объявление отсутствующей структуры. Добавьте единственный "struct sockaddr_in;" строка в файл .h
fishinear
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.