最佳答案
两个问题
第一部分: 我试图创建一个异步请求到我的数据库。我目前正在做它同步然而,我想学习两种方式,以更好地理解正在发生的事情。
目前我已经像这样设置了我的同步调用。
- (IBAction)setRequestString:(NSString *)string
{
//Set database address
NSMutableString *databaseURL = [[NSMutableString alloc] initWithString:@"http://127.0.0.1:8778/instacodeData/"]; // imac development
//PHP file name is being set from the parent view
[databaseURL appendString:string];
//call ASIHTTP delegates (Used to connect to database)
NSURL *url = [NSURL URLWithString:databaseURL];
//SynchronousRequest to grab the data
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSError *error;
NSURLResponse *response;
NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (!result) {
//Display error message here
NSLog(@"Error");
} else {
//TODO: set up stuff that needs to work on the data here.
NSString* newStr = [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];
NSLog(@"%@", newStr);
}
}
我觉得我应该换掉那个电话
NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
使用异步版本
sendAsynchronousRequest:queue:completionHandler:
然而,我不确定该将什么传递给 queue 或 CompletionHandler... 任何示例/解决方案都将非常感谢。
第二部分: 我一直在阅读有关多任务,我想支持它,以确保我的连接请求完成,如果有一个中断。我一直在跟踪这个 例子
它解释了如何获得更多的时间,如果一个中断发生,我明白它在做什么。.但不知道如何将其应用于这种连接?如果你有任何例子/教程来帮助我弄清楚如何应用它,那将是非常棒的!