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 – AFNetworking – 无效的参数不满足:url全部内容,希望文章能够帮你解决ios – AFNetworking – 无效的参数不满足:url所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。