Optimisation 56K
Bonsoir,
Je vous expose le problème :
à‰lément -> - NSArray contenant NSDictionaries
Chaques dico contient les 2 keys suivantes :
- name (NSString)
- URL (NSString)
Voici mon code pour afficher ça dans un popup :
Le problème est que avec mon 56K et quand il y a 5 dictionnaires dans l'array, j'ai la roue qui tourne >:D pendant quelques secondes à cause de la récuparation de la taille du fichier.
Bien gênant quand même ... Alors est-il possible d'effectuer mon code "en fond" pour éviter la roue de chargement ?
Merci d'avance,
Louka.
Je vous expose le problème :
à‰lément -> - NSArray contenant NSDictionaries
Chaques dico contient les 2 keys suivantes :
- name (NSString)
- URL (NSString)
Voici mon code pour afficher ça dans un popup :
// DOWNLOAD MENU<br /> menuArray = [freeware objectForKey:@"downloadURL"]; // NSArray<br /> e = [menuArray objectEnumerator]; // NSEnumerator<br /><br /> while ( object = [e nextObject] ) { <br /> NSURL* _urlD = [NSURL URLWithString:[object objectForKey:@"URL"]];<br /> NSString* _downloadTitle;<br /> NSString* _extensionName = [[[_urlD path] pathExtension] uppercaseString];<br /> NSString* _lengthS;<br /> <br /> _lengthS = [_urlD propertyForKey:@"content-length"];<br /> int length = [_lengthS intValue];<br /> if(!_lengthS)<br /> _downloadTitle = [NSString stringWithFormat:@"%@ (%@)",[object objectForKey:@"name"],_extensionName];<br /> else<br /> if(length>=1000000)<br /> _downloadTitle = [NSString stringWithFormat:NSLocalizedString(@"%@ (%@ - %iMb)",nil),[object objectForKey:@"name"],_extensionName, (length/1000000)];<br /> else <br /> _downloadTitle = [NSString stringWithFormat:NSLocalizedString(@"%@ (%@ - %iKb)",nil),[object objectForKey:@"name"],_extensionName, (length/1000)];<br /> <br /> [downloadMenu addItemWithTitle:_downloadTitle action:@selector(getDownload:) keyEquivalent:@""];<br /> [[downloadMenu itemAtIndex:[menuArray indexOfObject:object]] setImage:[NSImage imageNamed:@"MenuDownload"]];<br /> }<br /><br /> //[downloadMenu retain];<br /> [TBDownloadButton setMenu:downloadMenu];
Le problème est que avec mon 56K et quand il y a 5 dictionnaires dans l'array, j'ai la roue qui tourne >:D pendant quelques secondes à cause de la récuparation de la taille du fichier.
Bien gênant quand même ... Alors est-il possible d'effectuer mon code "en fond" pour éviter la roue de chargement ?
Merci d'avance,
Louka.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu peux même faire mieux, créer un Thread par téléchargement que tu souhaites effectuer.
en gros :
for(i=0;i<nbDownloads;i++) {
// creer un thread pour télécharger le fichier
}
Et chaque thread téléchargera un fichier, donc autant de threads que de downloads.
Pour le reste, RTFM sur "NSThread", et recherche sur OC y'a plein de posts sur les threads.
Entre autres celui là à l'air de s'en rapprocher (j'ai pas tout lu mais bon)
J'ai mon oral lundi et la pratique mercredi donc j'ai pas vraiment de temps pour regarder ça. En plus ce week-en je fête 1 an d'amour avec ma chérie
Merci encore,
Louka