【发布时间】:2013-06-11 02:27:48
【问题描述】:
我有这个代码块:
+(void)requestPath:(NSString *)path onCompletion:(RequestCompletionHandler)complete
{
// Background Queue
NSOperationQueue *backgroundQueue = [[NSOperationQueue alloc] init];
// URL Request
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:path]
cachePolicy:NSURLCacheStorageAllowedInMemoryOnly
timeoutInterval:10];
// Send Request
[NSURLConnection sendAsynchronousRequest:request
queue:backgroundQueue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if (complete) complete(result,error);
}];
}
此代码在我使用它的 99% 的时间里都可以毫无问题地为我的应用提取数据。但是,有时(但并非总是)在 UIRefreshControl 刷新请求上,NSURLConnection sendAsynchronousRequest 中的完成处理程序未命中,这会导致我的应用程序崩溃。
我可能会请求相同的数据,有时完成处理程序会被命中,但其他时候刷新它将不起作用。
我不确定为什么会这样。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
标签: ios objective-c nsurlconnection uirefreshcontrol sendasynchronousrequest