ios – AFNetworking – 无效的参数不满足:url

前端之家收集整理的这篇文章主要介绍了ios – AFNetworking – 无效的参数不满足:url前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚在ios7上尝试过AFNetworking,我得到这个错误
/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

我不知道发生了什么,lib是一个ios7的问题?
谢谢.

解决方法

正如Leon在评论中所说,评论NSParameterAssert不是一个理想的解决方案. AFNetworking的作者认为这是一个断言.不传递断言的代码可能是由无效的URL引起的.

请记住,NSURL工厂方法(即URLWithString:及其兄弟姐妹)在传递无效的URL字符串时将返回nil.在这种情况下,无效的字符串是包含无效URL的字符串.

您应该做什么而不是评论我们的断言,确保您没有将任何无效的URL传递到您的AFHTTPClient实例. This Stackoverflow answers给出了如何验证URL的示例.这是答案的一个例子:

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

或者,您可以使用NSString的stringByAddingPercentEscapesUsingEncoding方法添加百分比转义.喜欢这个:

NSString *encoded = [notEncoded stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

猜你在找的iOS相关文章