Ios NSURLConnection对象忽略它';s的实现方法
我的问题与我的单线程应用程序中的代码有关,该程序通过与web服务的NSURL连接更新设备的本地数据库数据 我的NSURLConnection初始化并没有进入它的任何实现方法,这让我感到困惑。 在AppDelegate.m->ApplicationIDFinishLaunching方法中,我正在创建一个NSURLConnection对象:Ios NSURLConnection对象忽略它';s的实现方法,ios,delegates,nsurlconnection,Ios,Delegates,Nsurlconnection,我的问题与我的单线程应用程序中的代码有关,该程序通过与web服务的NSURL连接更新设备的本地数据库数据 我的NSURLConnection初始化并没有进入它的任何实现方法,这让我感到困惑。 在AppDelegate.m->ApplicationIDFinishLaunching方法中,我正在创建一个NSURLConnection对象: //AppDelegate.m - (void)applicationDidFinishLaunching:(UIApplication *)applicati
//AppDelegate.m
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
// ... Building request URL here ...
NSString *requestURL = [NSString stringWithFormat:@"%@%@", URI,urlEncodedParamStr]
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:requestURL]];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
responseData = [[NSMutableData data] retain];
if(connection !=nil)
[connection release];
}
现在应执行以下任何适当的NSURLConnection方法
我在AppDelegate.m中实现的:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{[responseData setLength:0];}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {[responseData appendData:data];}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{//my implementation}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {//my implementation}
但是,执行将继续,行直接位于NSURLConnection*connection的init之后,不执行任何NSURLConnection实现的方法。我已经确认请求不是nil,并在实现的NSURLConnection方法中放置断点-它们没有被调用
发生什么事了
一如既往地谢谢你 你需要打电话
[connection start];
在远程调用实际启动之前
即使如此,下一行代码仍将执行。这是一个异步调用,在后台线程中执行。稍后会收到响应,然后将调用您的连接…
方法(最长可在30秒后超时)。您需要调用
[connection start];
在远程调用实际启动之前
即使如此,下一行代码仍将执行。这是一个异步调用,在后台线程中执行。稍后会收到响应,然后将调用您的
连接…
方法(可能会在30秒后超时)。您需要发布更多代码,我们甚至无法看到您是否正在从此处发布的内容启动请求。确定。已添加代码。以上是ApplicationIDFinishLaunching中的所有代码,无URL创建字符串,它创建的是有效的URL。谢谢你看这个,伙计。你需要发布更多的代码,我们甚至看不到你是否从你发布的内容开始请求。当然。已添加代码。以上是ApplicationIDFinishLaunching中的所有代码,无URL创建字符串,它创建的是有效的URL。谢谢你看这个,guysexpand的“没有效果”。确认(使用调试器或NSLog)请求为非零,在所有连接方法中放置断点(或NSLog),执行代码足够长的时间以防失败(默认30秒),我已经在调试器中详细介绍了这一点,并确认请求不是nil,并在所有实现的方法中放置断点-我附加了一个屏幕截图,显示调试器以及如何忽略连接对象方法,并向右跳转到responseData变量赋值。谢谢再读一遍答案。这是一个异步调用。您的代码中没有[连接启动]
-尽管您认为它“不起作用”,但它是必需的。很抱歉,它在那里,不起作用,所以我将其拔出。事实上,苹果公司并不要求它,除非使用initWithRequest:delegate:startImmediately:导致连接开始加载数据(如果尚未加载数据)。-(void)只有在使用initWithRequest:delegate:startImmediately:method创建连接并为startImmediately参数提供NO时,才需要启动调用此方法的讨论。如果在调用此方法之前未在运行循环或操作队列中计划连接,则将在默认模式下在当前运行循环中计划连接。展开“无效果”。确认(使用调试器或NSLog)请求为非零,在所有连接方法中放置断点(或NSLog),执行代码足够长的时间以防失败(默认30秒),我已经在调试器中详细介绍了这一点,并确认请求不是nil,并在所有实现的方法中放置断点-我附加了一个屏幕截图,显示调试器以及如何忽略连接对象方法,并向右跳转到responseData变量赋值。谢谢再读一遍答案。这是一个异步调用。您的代码中没有[连接启动]
-尽管您认为它“不起作用”,但它是必需的。很抱歉,它在那里,不起作用,所以我将其拔出。事实上,苹果公司并不要求它,除非使用initWithRequest:delegate:startImmediately:导致连接开始加载数据(如果尚未加载数据)。-(void)只有在使用initWithRequest:delegate:startImmediately:method创建连接并为startImmediately参数提供NO时,才需要启动调用此方法的讨论。如果在调用此方法之前未在运行循环或操作队列中计划连接,则将在默认模式下在当前运行循环中计划连接。