没有调用 URLConnection 委托方法

Posted

技术标签:

【中文标题】没有调用 URLConnection 委托方法【英文标题】:URLConnection Delegate methods are not getting called 【发布时间】:2011-01-07 07:44:45 【问题描述】:

我在我的代码中使用了两个 Web 服务。 并在点击警报按钮时调用方法 我的代码是

(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 如果(按钮索引==1) 如果(alertView==AlertDel)

[self DeleteFromServerDatabase];

-(void)DeleteFromServerDatabase [加载 setFrame:CGRectMake(140, 210, 40, 40)]; [加载 setHidden:NO]; [加载器设置隐藏:否]; [self.view bringSubviewToFront:loader]; [self.view bringSubviewToFront:loading]; [加载开始动画]; NSString *devToken=app.iDevice; // NSString *devToken= [[UIDevice currentDevice] uniqueIdentifier]; 如果(开发令牌)

别的 devToken=@"c677"; NSString *soapMessage = [NSString stringWithFormat: @"\n" "\n" "\n" "\n" "%@\n" "%@\n" "%@\n" "\n" "\n" "\n",bday.fname,bday.lname,devToken ];

NSURL *url = [NSURL URLWithString:@"http://72.167.96.135:8101/BirthDayWebService.asmx"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];

[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: @"http://tempuri.org/DeleteBirthday" forHTTPHeaderField:@"SOAPAction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];

theConnection2 = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

if( theConnection2 )

    webData = [[NSMutableData data] retain];

else



但是没有调用任何 UrlConnection 代表。 请帮我解决这个问题

【问题讨论】:

【参考方案1】:

你没有在你的 else 子句中做任何事情:

if( theConnection2 )

  webData = [[NSMutableData data] retain];

else



您确定连接已正确初始化吗? NSURLConnection 文档说:

返回值

URL 请求的 URL 连接。如果无法初始化连接,则返回 nil

另外,请确保您在主线程或您希望被回调的任何线程上开始加载:

发送给委托的消息将在调用此方法的线程上发送。

【讨论】:

【参考方案2】:

你忘了[theConnection2 start]

【讨论】:

以上是关于没有调用 URLConnection 委托方法的主要内容,如果未能解决你的问题,请参考以下文章

CALayer委托方法drawLayer没有被调用

[javaSE] 网络编程(URLConnection)

animationDidStop:完成:委托方法没有被调用

UIAlertView 委托方法没有调用?

即使在 [[UIPickerView alloc] init] 之后设置了委托,也没有调用 UIPickerView 委托方法

为啥我的 UISearchController 委托方法没有被调用?