отправить синхронный запрос с использованием библиотек ASIHTTPREQUEST, показывающих индикатор активности в iPhone - PullRequest
1 голос
/ 30 декабря 2011

Я хочу показать индикатор активности при отправке и получении синхронного asihttprequest с сервера.Я использовал индикатор активности, так как asihttprequest отправляется, но он не отображается в iPhone из-за синхронного запроса.Любое предложение, как показывать индикатор активности при синхронной передаче данных.Спасибо

1 Ответ

2 голосов
/ 30 декабря 2011

Синхронный запрос вызывает метод делегата индикатора активности setProgress: в главном потоке.

B / c вы используете ASIHTTPRequest в главном потоке, который блокирует пользовательский интерфейс, следовательно, вызывает setProgress: очередь отправляется после завершения запроса, но к этому времени прогресс уже составляет 100%

. Для решения этой проблемы используйте либо асинхронный запрос, либо вызовите синхронный запрос в фоновом потоке, используя

[self performSelectorInBackground:@selector(startSynchronous:) withObject:nil];

Редактировать

Не забудьте создать свой собственный пул автоматического выпуска для обработки памяти внутри вашего startSynchronous: метод

-(void)startSynchronous:(BOOL)animate{
       NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

       NSString *autoreleasedString = @"xxx";   

       NSLog(@"%@",autoreleasedString);

       [pool drain];

}
...