2010-11-06 3 views
0

J'ai une action iOS - (void)download; - que j'ai lancé au lancement de mon application iOS.Façon de forcer l'action iOS à attendre jusqu'à l'action avant de terminer?

Cependant, j'ai besoin d'un autre - (void)showData; - qui affiche les données sur un UIMapView pour attendre que toutes les données aient été téléchargées via - (void)download - avant qu'il ne commence. Je me demandais si quelqu'un sait comment faire ça?

Merci.

+0

Comment la méthode de téléchargement le télécharger? – Anna

+0

AsBitObvious demande ... utilisez-vous NSURLConnection? NSOperationQueue? Un peu plus d'information nous aidera à mieux comprendre votre question. – joshpaul

+0

Désolé pour le retard - mais j'utilise un NSURLConnection – Billy

Répondre

0

d'abord envoyer - (void)download; demande et mettre un progress hud à l'interface utilisateur dispose ainsi savoir que vous téléchargez des données, une fois que vous avez terminé le téléchargement rejeter les progrès hud et exécutez votre méthode - (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]; 
} 
Questions connexes