我遇到以下错误:
“因未捕获的异常而终止应用程序'NSInvalidArgumentException',原因:' - [__ NSCFString string]:无法识别的选择器发送到实例”
实现AFNetworking的方法POST(resultDict包含图像):
str=[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
[manager1 POST:str
parameters:resultDict
success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSLog(@"Post JSON: %@",responseObject);
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
NSLog(@"Post Error: %@",error);
}];
据我所知,问题在于解析,但在我的项目中几乎相同的代码没有问题。
我在POST方法之前暂停了运行,没有变量等于nil
有人遇到过这个问题吗?
答案 0 :(得分:0)
检查堆栈跟踪。什么叫string
?导致此问题的原因是某些变量不是您认为的类型(或AFNetworking
认为的类型)。有些类型有string
方法,但它获得了NSString
而不是该类型。
我的预感是[POST:parameters:success:failure:]
让您的网址感到困惑,并且可能在如何管理其NSURLComponents
(具有-string
方法)方面存在错误,并且在这里感到可疑
发送前检查str
。此编码可能不正确。您不一定使用URLQueryAllowedCharacterSet
来编码整个URL(并非所有URL都是查询)。你经常会逃脱它,但这不是真的正确。