Цель-C: Почему при импорте файла заголовка появляется ошибка компиляции - PullRequest
0 голосов
/ 07 апреля 2009

Мне любопытно, что может быть связано с ошибкой компилятора для простого импорта заголовочного файла. Если я закомментирую это, все будет прекрасно скомпилировано - заголовок / реализация для класса, который я пытаюсь импортировать в один из моих UIViewController, передается компилятору без каких-либо предупреждений. Однако, как только я включаю его, я получаю множество ошибок.

Я пытаюсь использовать приложение Apple Reachability в своем собственном коде и что-то вроде:

#import "Reachability.h"

Я получаю тонну:

error: syntax error before 'target'
error: syntax error before 'SCNetworkReachabilityFlags'
error: syntax error before 'SCNetworkReachabilityRef'
error: syntax error before 'SCNetworkReachabilityRef'
fatal error: method definition not in @implementation context

В основном жалуются на:

static void ReachabilityCallback(SCNetworkReachabilityRef target,       SCNetworkReachabilityFlags flags, void *info);
- (BOOL)isNetworkAvailableFlags:(SCNetworkReachabilityFlags *)outFlags;
- (SCNetworkReachabilityRef)reachabilityRefForHostName:(NSString *)hostName;
- (CFRunLoopRef)startListeningForReachabilityChanges:(SCNetworkReachabilityRef)reachability onRunLoop:(CFRunLoopRef)runLoop;

Есть идеи, почему это происходит только тогда, когда я пытаюсь импортировать файл заголовка?

Ответы [ 3 ]

10 голосов
/ 07 апреля 2009

Похоже, вам, вероятно, нужно

#import <SystemConfiguration/SystemConfiguration.h>
2 голосов
/ 07 апреля 2009

Эта ошибка почти всегда вызвана отсутствием определения слова, предшествующего слову ошибки (в данном случае SCNetworkReachabilityRef предшествует target).

Следовательно, вы не определили SCNetworkReachabilityRef и (похоже) все остальные "SC..." типы.

Я не уверен, что SystemConfiguration.h - это , включенный в Reachability.h (если вы используете образец кода из здесь ).

Этот код включает как SystemConfiguration/SCNetworkReachability.h , так и Reachability.h.

0 голосов
/ 31 мая 2009

На iPhone версия 1.5 Reachability от Apple включает

#import <SystemConfiguration/SystemConfiguration.h>

но вам необходимо импортировать инфраструктуру SystemConfiguration в ваше приложение. Вы можете получить его там /System/Library/Frameworks/SystemConfiguration.framework

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...