AFNetworking: parámetro no válido que no satisface: url

Acabo de probar AFNetworking en ios7 y obtengo este error:

/Classes/AFHTTPClient.m:227 2013-09-16 18:25:57.557 App[13531:a0b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: url 

No sé lo que está pasando, ¿hay algún problema con la lib an ios7? Gracias.

Como dice Leon en su comentario, comentar NSParameterAssert no es una solución ideal. Una afirmación ha sido puesta allí por una razón por el autor de AFNetworking . Es probable que el código que no atesting la aserción sea causado por una URL no válida.

Recuerde que los methods de fábrica de NSURL (es decir, + URLWithString: y sus hermanos) devolverán nil cuando pasen una cadena de URL no válida. En este context, una cadena no válida es una cadena que contiene una URL no válida.

Lo que debe hacer en lugar de comentar nuestra afirmación, es asegurarse de que no está pasando ninguna URL inválida a su instancia AFHTTPClient . Esta respuesta de Stackoverflow brinda un ejemplo de cómo puede validar una URL. Aquí hay una muestra de la respuesta:

 - (BOOL)validateUrl:(NSString *)candidate { NSString *urlRegEx = @"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+"; NSPnetworkingicate *urlTest = [NSPnetworkingicate pnetworkingicateWithFormat:@"SELF MATCHES %@", urlRegEx]; return [urlTest evaluateWithObject:candidate]; } 

Alternativamente, puede agregar porcentajes de escape utilizando el método stringByAddingPercentEscapesUsingEncoding . Me gusta esto:

 NSString *encoded = [notEncoded stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

Acabo de tener este error, la causa fue un espacio al comienzo de la url:

  http://host.com/etc ^ 

Hoy tuve un caso extraño con este aserto. Mi problema fue que he copydo url de otro editor de text (Sublime) y es por eso que url no era válido.

No creía hasta que lo probé varias veces.

Espero que funcione … En el nombre de class AFnetworing AFURLRequestSerialization.m

 commented the line 227 : // NSParameterAssert(url); 

como respuesta de Kasper, puede "agregar porcentajes de escape utilizando el método stringByAddingPercentEscapesUsingEncoding de NSString"

o mejor use lo siguiente ya que se desaprobó en ios 9

 path = [path stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];