Вы должны загрузить действие в другой поток - вы делаете это в том же (основном) потоке:
startSynchronous указывает на это.
Я думаю, что библиотека ASI поддерживает загрузку этого в другом потоке, но я не очень знаком с библиотекой. (Вы можете назвать что-то вроде
[запрос setDelegate: self];
[запрос startAsynchronous];
и затем реализовать:
- (void) requestFinished: (ASIHTTPRequest *) запрос
и в этом методе удалите индикатор сетевой активности. )
Или вы можете сделать что-то вроде этого (трудный путь - начать свой собственный поток;)):
[NSThread detachNewThreadSelector: @selector (loadBanner :) toTarget: self withObject: param];
Когда метод loadBanner завершен, вы должны вернуться к основному потоку, в котором загружен баннер, примерно так:
(вызывая это из метода loadBanner)
[self executeSelectorOnMainThread: @selector (bannerIsLoaded :) с объектом: rez waitUntilDone: NO];
и в методе bannerIsLoaded удалите индикатор сетевой активности и покажите сам баннер.