Dans mon application, j'ai besoin de télécharger plusieurs plist.iphone télécharger plusieurs fichiers
pour télécharger un plist-je utiliser le NSURLconnection
dans mon code j'utiliser un UIAlertView
avec un UIActivityIndicator
puis quand le téléchargement est terminé, j'ajouter un bouton à l'alerte de la rejeter.
Pour télécharger le plist j'utilise quelque part dans mon code un NSURL
mis à l'adresse où se trouve le plist, ensuite je fixe un NSURLRequest
avec la politique de cache d'URL et un intervalle de délai. Ensuite, j'ai mis mon NSMutableData
à la connexion NSURL
avec un NSURLRequest
. Dans le délégué didReceiveData
: j'ajoute des données à mon objet de données mutable, dans l'erreur didFailWithError:
je gère. Et finalement dans le connectionDidFinishLoading
je sérialise mes données à un plist ainsi je peux écrire pour classer mon plist, et libère mon alertview.
Mon problème est: comment puis-je faire si je fichier sevetal à télécharger parce que le connectionDidFinishLoading
est appelé à chaque fois que mon NSURLConnection
est terminé, mais je veux libérer mon UiAlert
quand tout est fini. Mais quand le premier plist est téléchargé mon code dans le connectionDidFinishLoading
tirera.
voici mon code:
dans la vue a fait la charge:
// set the UiAlert in the view did load
NSURL *theUrl = [NSURL URLWithString:@"http://adress.com/plist/myPlist.plist"];
NSURLRequest *theRequest = [NSURLRequest requestWithURL:theUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
self.plistConnection = [[ NSURLConnection alloc] initwithRequest:theRequest delegate:self startImmediatly:YES];
//plistConnection is a NSURLConnection
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[incomingPListData appendData:data];
}
-(void)connection:(NSURLConnection *)connectionDidFailWithError:(NSError *)error {
// handle error here
}
-(void)connectionDidFinisloading:(NSURLConnection *) connection {
NSPropertyListFormat format;
NSString *serialErrorString;
NSData *plist = [NSPropertyListSerialisation propertyListFromData:incomingPlistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&serialErrorString];
if (serialErrorString) {//error}
else { // create path and write plist to path}
// change message and title of the alert
donc si je veux todownload un autre fichier où dois-je mettre la demande la connexion et comment puis-je dire didFinishLoading
à code de feu quand tout mon fichier est téléchargé.
merci à tous
désolé de ne pas citer le code, mais je suis sur un téléphone intelligent – Floo