Нужна ли UIAlert какая-то задержка? - PullRequest
0 голосов
/ 15 июля 2009

Попытка предупредить пользователя, когда Интернет недоступен (и повторите попытку, когда он отклонит сообщение). Экран слегка тускнеет (при подготовке к предупреждению), но предупреждение никогда не отображается.

Цикл while мешает предупреждению?

-(NSArray*)getResponse:(NSString*)page {
NSError *error;
NSURLResponse *response;
NSData *dataReply;
NSString *stringReply;
NSString *legalAddressURL;
NSArray *separatedData;
legalAddressURL = [NSString stringWithFormat:@"%@%@", SERVER, 
                   [page stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: legalAddressURL]];
[request setHTTPMethod: @"GET"];
dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
while ([error code]){
    if (isNetAvailable){
        UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Internet Connection" 
            message:@"Server is down" delegate:self cancelButtonTitle:@"Try again" 
            otherButtonTitles:nil] autorelease];
        [alert show];
        dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    } else {
        UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Internet Connection" 
            message:@"No access to net" delegate:self cancelButtonTitle:@"Try again" 
            otherButtonTitles:nil] autorelease];
        [alert show];
        dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    }
}
stringReply = [[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding];
separatedData = [stringReply componentsSeparatedByCharactersInSet:
                 [NSCharacterSet characterSetWithCharactersInString:@","]];
return separatedData;

}

1 Ответ

1 голос
/ 15 июля 2009

После показа предупреждения с использованием [alert show] необходимо выйти из метода getResponse , поскольку внутренний цикл сообщений должен продолжаться.

Вы не можете просто продолжать цикл и показывать оповещения.

Я могу ошибаться, но я почти уверен, что в этом причина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...