Xcode 4.2 - оголошення "..." не буде видно поза цим попередженням функції


161

Я використовую клас Apple Reachability від коду Apple Sample Reachability

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

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

декларація 'struct sockaddr_in ' не буде видно за межами цієї функції *

Я не добре в класичному С%), тому я не розумію, як я можу виправити це попередження, або, можливо, я можу його взагалі проігнорувати.

Дякую


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 файлу
риболовнийруб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.