afnetworking — exc_bad_access в startMonitoringNetworkReachability

Для проекта я должен использовать AFNetworking. Получил свежую копию с github, и пример проекта iOS, похоже, работает.

Однако, когда я копирую папку «AFNetworking» в новый проект Xcode и пытаюсь сделать HTTP-вызов, происходит сбой в инициализаторе AFHTTPClient.

Итак, в [AFHTTPClient initWithBaseURL:] есть этот код:

#ifdef _SYSTEMCONFIGURATION_H
    [self startMonitoringNetworkReachability];
#endif

и это выглядит действительно глупо, но

1) КОГДА я не линкую SystemConfiguration - проект не компилируется

(Неопределенные символы для архитектуры i386: "_SCNetworkReachabilityCreateWithName", на которые ссылается: -[AFHTTPClient startMonitoringNetworkReachability] в AFHTTPClient.o)

2) КОГДА я связываю SystemConfiguration - проект падает во время выполнения внутри startMonitoringNetworkReachability с EXC_BAD_ACCESS:

SCNetworkReachabilitySetCallback(self.networkReachability, AFReachabilityCallback, &context);

У кого-нибудь была эта проблема? Судя по тому, как они хвалят свою библиотеку на github, я подумал, что она будет более отточенной.


person Marin Todorov    schedule 19.02.2012    source источник
comment
все еще не работает для меня, кто-нибудь?   -  person Marin Todorov    schedule 02.03.2012
comment
у вас есть решения? У меня есть приложение с двумя целями, оно работает в одной цели, но не работает в другой цели. Это так странно.   -  person nonamelive    schedule 01.04.2012
comment
это действительно странно, до сих пор нет решения для этого   -  person Marin Todorov    schedule 11.04.2012
comment
Ваш baseURL равен нулю? Он рухнет, если он равен нулю.   -  person nonamelive    schedule 11.04.2012


Ответы (2)


Он выйдет из строя, если ваш baseURL равен нулю.

person nonamelive    schedule 01.04.2012
comment
Это исправило это для меня. Я проводил модульное тестирование условия, когда использовался недопустимый или нулевой базовый URL-адрес. - person Eric Baker; 04.07.2012
comment
К вашему сведению, nil baseURL теперь будет вызывать исключение в последней версии AFNetworking. - person mattt; 06.11.2012
comment
Хорошо знать! Спасибо, @mattt! - person nonamelive; 06.11.2012
comment
@mattt... у меня все еще падает. Какая версия выдает исключение? - person zakdances; 10.11.2012
comment
Кроме того, кажется, что происходит сбой, если ваш baseURL является NSURL с пустой строкой. Это довольно раздражает при работе с запросами на неизвестные структуры URL - например. получение изображения с URL-адреса, указанного в ответе на HTTP-запрос. - person Nick Forge; 14.11.2012

Согласно документации:

Для этого метода требуется платформа SystemConfiguration. Добавьте его на этапе сборки активной цели «Связать двоичный файл с библиотекой» и добавьте #import к префиксу заголовка проекта (Prefix.pch).

Вы включили фреймворк, но добавили ли вы #import <SystemConfiguration/SystemConfiguration.h> где-то в проекте?

person mattt    schedule 20.02.2012
comment
импорт в SystemConfiguration у меня в .pch, но все так же вылетает... - person Marin Todorov; 21.02.2012
comment
да, похоже, единственным способом для меня было прокомментировать [self startMonitoringNetworkReachability] - person Marin Todorov; 26.02.2012
comment
Та же проблема здесь. Можно было бы решить это так же, комментируя [self startMonitoringNetworkReachability] - person Klaas; 09.03.2012
comment
У меня такая же проблема с Xcode 4.5.2. Я добавил фреймворк и добавил в pch, но компилятор все еще жалуется. ОБНОВЛЕНИЕ, о, прекрасный xcode, каким-то образом полностью потерял мои настройки связывания. Сейчас все в порядке... - person shawnwall; 06.11.2012
comment
@shawnwall как ты восстановил настройки привязки? - person zakdances; 10.11.2012