UIAlertView работает асинхронно, поэтому он не приостанавливает цикл.
Есть более умные способы написания вашего цикла, например используя блоки или обработчики завершения, но я бы посоветовал самый простой способ - просто преобразовать ваш код из:
-(void) method
{
...
for( int i=0; i<10; i++)
{
check_loop_item(i);
}
}
до:
int iCurrent, iEnd;
-(void) method
{
...
iCurrent = 0;
iEnd = 10;
[self doLoop];
}
-(void) doLoop
{
if( iCurrent >= iEnd )
return;
check_loop_item(iCurrent);
...
if( error )
{
// Popup a UIAlertView
}
else
{
iCurrent++;
[self doLoop];
}
... и в методе обратного вызова из UIAlertView выполните:
-(void) callbackFromUIAlertView
{
iCurrent++;
[self doLoop];
}
... т.е. цикл, который запускается один раз за раз и позволяет произвольно остановить / приостановить / возобновить его.