Питання з двох частин
Частина перша: Я намагаюся створити 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
sendAsynchronousRequest:queue:completionHandler:
однак я не впевнений, що передати в чергу або endHandler ... Будемо вдячні за будь-які приклади / рішення.
Частина друга: Я читав про багатозадачність, і я хотів би підтримати її, переконавшись, що мої запити на підключення завершені, якщо є переривання. Я наслідував цей приклад
У ній пояснюється, як отримати більше часу, якщо виникає переривання, я розумію, що це робить .. але не як застосувати його до цього з'єднання? якщо у вас є якісь приклади / підручники, які допоможуть мені зрозуміти, як це застосувати, це було б чудово!