Способ заставить действие iOS ждать до завершения действия? - PullRequest
0 голосов
/ 07 ноября 2010

У меня есть действие iOS - (void)download;, которое я запускаю при запуске моего приложения iOS.

Однако мне нужен еще один - (void)showData; - который отображает данные на UIMapView, чтобы дождаться загрузки всех данных через - (void)download - до его начала.Просто интересно, кто-нибудь знает, как это сделать?

Спасибо.

1 Ответ

0 голосов
/ 03 мая 2013

Сначала отправьте - (void)download; запрос и поместите Ход выполнения в пользовательский интерфейс, чтобы пользователь знал, что вы загружаете данные, как только вы закончите загрузку, откажитесь от хода выполнения и запустите метод - (void)showData;

- (void)download{   
    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0];
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (connection) {
        receivedData = [[NSMutableData data] retain];
        //display loading hud here 
    } else {
        // oh noes!
    }
}

- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    [receivedData setLength:0]; 
}

- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {   
    [receivedData appendData:data]; 
    int kb = [receivedData length] / 1024;
    //dismiss hud here 
    [self showData];
}
...