2013-06-05 86 views
0

我有以下代码,以请求我的API:NSURLConnection的延时5秒

-(void)makeApiCall:(NSString *)function params:(NSDictionary *)params notificationName:(NSString *)notificationName 
{  
NSURL *url = [NSURL URLWithString:kBaseUrl]; 

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; 
httpClient.parameterEncoding = AFFormURLParameterEncoding; 

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:[NSString stringWithFormat:@"%@/%@",kApiBaseUrl,function] parameters:params]; 


NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
    NSLog(@"complete"); 
//..My code   
}];  
} 

我的问题是,之后的NSLog(@“完全”),应用程序被冻结5秒.. 我该如何解决这个问题?

谢谢。

+0

好方法,什么样的代码跟在'的NSLog(@“完整”)'?当“完成”在调试器控制台上可见时,请求最终完成。所以你发布的代码几乎没有什么问题。 nslog后面的代码更可能导致冻结。 –

+0

嘿嘿,我会说这取决于什么“//..我的代码”确实^^ – Groot

+0

你可以尝试点击xcode调试器中的暂停按钮,而应用程序似乎卡住了,看看它是否显示它是什么其实做 – edo42

回答

1

sendAsynchronousRequestqueue参数是在其上 完成处理程序块时调度的队列。如果您在完成 处理程序做任何UI更新,那么你可能应该调用与

queue:[NSOperationQueue mainQueue] 
+0

它工作马丁R!谢谢,真实! –