Синхронный запрос вызывает метод делегата индикатора активности 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];
}