我收到错误:
* [NSURLError对象]:无法识别的选择器发送到实例0x5f510e0 *
2010-10-11 11:41:33.718 CBH [15454:207] **由于未捕获异常终止应用程序* 'NSInvalidArgumentException',原因:' - [NSURLError对象]:无法识别的选择器发送到实例0x5f510e0'* < / em>的
这是代码:
NSArray *args = [NSArray arrayWithObjects:@"username",@"password",nil]; // the param(s)
NSString *server = @"https://username:password@webservices.****.***:443/dsa/xmlrpc/restricted1/"; // the server
XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithHost:[NSURL URLWithString:server]];
[request setMethod:@"BootService.getPublicTokenGeneric" withObject:args];
id response = [self executeXMLRPCRequest:request];
[request release];
if( [response isKindOfClass:[NSError class]] ) {
NSLog(@"Error : %@",response);
}
else {
NSLog(@"Response ");
}
}
- (id)executeXMLRPCRequest:(XMLRPCRequest *)req {
NSLog(@"HEllo");
XMLRPCResponse *userInfoResponse = [XMLRPCConnection sendSynchronousXMLRPCRequest:req];
if([userInfoResponse isKindOfClass:[NSError class]]) {
NSLog(@"Error %@",userInfoResponse);
}
return [userInfoResponse object];
}
有人可以帮我撕掉这个错误!!
我编辑了代码,现在我可以看到NSURLError是:
Domain = NSURLErrorDomain Code = -1005“网络连接丢失。”
NSErrorFailingURLStringKey = http://用户名:密码@ 。 .org:443 / zws / xmlrpc / restricted1 /,NSErrorFailingURLKey = http://用户名:密码@ 。组织:443 / ZWS / XMLRPC / restricted1 /,
NSLocalizedDescription =网络连接丢失。,NSUnderlyingError = 0x5f2b300“网络连接丢失。
答案 0 :(得分:0)
看起来XMLRPCConnection会返回一个NSURLError对象,它不喜欢你正在调用的对象选择器。
所以userInfoResponse是一个NSURLError。你需要测试这个,就像你正在测试NSError一样,尽管很快。
XMLRPCResponse *userInfoResponse = [XMLRPCConnection sendSynchronousXMLRPCRequest:req];
if([userInfoResponse isKindOfClass:[NSURLError class]]) {
//Do something else
}
else return [userInfoResponse object];
您的基于ID的代码容易出现这类错误,我建议使用更强类型的方法。