2012-02-19 24 views
5

Para un proyecto tengo que usar AFNetworking. Obtuve una nueva copia de github y el proyecto de ejemplo de iOS parece estar funcionando.afnetworking - exc_bad_access en startMonitoringNetworkReachability

Sin embargo - cuando copio sobre la carpeta "AFNetworking" a un nuevo proyecto de Xcode y tratar de hacer una llamada http, se estrella en el inicializador de la AFHTTPClient

Así que en [AFHTTPClient initWithBaseURL:] hay este código:

#ifdef _SYSTEMCONFIGURATION_H 
    [self startMonitoringNetworkReachability]; 
#endif 

y parece realmente estúpido, pero

1) cuando no ligo SystemConfiguration - el proyecto no compila

(símbolos no definidos para la arquitectura i386: "_SCNetworkReachabilityCreateWithName", referenciados a partir de: - [AFHTTPClient startMonitoringNetworkReachability] en AFHTTPClient.o)

2) cuando lo haga enlace SystemConfiguration - los accidentes de proyectos en tiempo de ejecución dentro startMonitoringNetworkReachability con EXC_BAD_ACCESS:

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

¿Alguien tiene este problema? Por la forma en que alaban su lib en github, pensé que sería más pulido.

+0

Todavía no funciona para mí, ¿alguien? –

+0

¿tiene alguna solución? Tengo una aplicación que tiene 2 objetivos, funciona en un objetivo pero no funciona en otro. Es tan raro. – nonamelive

+0

es realmente extraño, todavía no hay solución para eso –

Respuesta

5

Según the documentation:

Este método requiere el marco SystemConfiguration. Añádalo a la fase de compilación "Link Binary With Library" del objetivo activo y agregue #import al prefijo del encabezado del proyecto (Prefix.pch).

Incluyó el marco, pero ¿agregó #import <SystemConfiguration/SystemConfiguration.h> en algún lugar del proyecto?

+0

la importación a SystemConfiguration está en mi .pch, pero todavía se cuelga de la misma manera ... –

+0

Sí, parece que la única manera para mí fue comentar [self startMonitoringNetworkReachability] –

+0

Mismo problema aquí. Podría resolverlo de la misma manera comentando [self startMonitoringNetworkReachability] – Klaas

6

Se bloqueará si su baseURL es nula.

+1

Esto lo arregló para mí. Estaba probando la condición de unidad cuando se usaba un baseURL nulo o no válido. –

+1

FYI, un 'nil'' baseURL' lanzará ahora una excepción en el último AFNetworking. – mattt

+0

¡Es bueno saberlo! Gracias, @mattt! – nonamelive