Вопрос из двух частей
Часть первая: Я пытаюсь создать ASynchronous запрос к моей базе данных. В настоящее время я делаю это синхронно, но я хочу узнать оба пути, чтобы лучше понять, что происходит.
В настоящее время я настроил свой синхронный вызов следующим образом.
- (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];
с ASynchronous version
sendAsynchronousRequest:queue:completionHandler:
однако я не уверен, что передать в очередь или завершениеHandler... Любые примеры/решения были бы с благодарностью.
Часть вторая: Я читал о нескольких задачах, и я хотел бы поддержать его, убедившись, что мои запросы на соединение завершены, если есть прерывание. Я следил за этим
В нем объясняется, как получить больше времени, если произойдет прерывание, я понимаю, что он делает.. но не как применить его к этому соединению? если у вас есть примеры/учебные пособия, которые помогут мне разобраться, как применить его, что было бы замечательно!