Es ist zum Verzweifeln: Dieselbe Methode und dieselben Dateien auf demselben Server und dennoch klappt der Download nur manchmal!
Ich lade diverse Daten vom Server auf das iPhone und darunter sind auch Images. Diese werden im Ordner Documents gespeichert, damit sie beim nächsten Mal schon verfügbar sind.
Die Methode dafür ist schlicht diese:
Alles anzeigen
Geladen werden PNG- und GIF-Dateien, die allesamt klein sind (1-2 KB).
Mir unverständlich, aber im Debugger schön zu verfolgen ist, dass manchmal url nicht richtig gesetzt ist und machmal nur image = nil bleibt.
Die URL wird über eine andere Methode gebildet und ist auch immer identisch.
Die Verbindung läuft lokal im LAN.
In einem Fall hat der Dialog 5 Images, davon werden (meinstens !) die ersten 2 noch geladen und der Rest bleibt irgendwo stecken.
JA, auf dem Server sind diese Dateien vorhanden
Lasse ich die App mit einem entfernten Server kommunizieren, läuft es hingegen langsam, aber richtig...!
Der Aufruf der Downloads erfolgt synchron, während ich die XML-Daten analysiere.
Hat da einer von euch eine Idee?
Ich lade diverse Daten vom Server auf das iPhone und darunter sind auch Images. Diese werden im Ordner Documents gespeichert, damit sie beim nächsten Mal schon verfügbar sind.
Die Methode dafür ist schlicht diese:
Quellcode
- +(UIImage *) loadAndSaveImageFromURL:(NSString *) urlstring savePath:(NSString *)savePath {
- NSURL *url = [NSURL URLWithString:urlstring];
- UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];
- NSData *data = nil;
- if ([[[urlstring pathExtension] lowercaseString] isEqualToString:@"jpg"]) {
- data = UIImageJPEGRepresentation(image, 100);
- } else {
- data = UIImagePNGRepresentation(image);
- }
- [data writeToFile:savePath atomically:YES];
- return image;
- }
Geladen werden PNG- und GIF-Dateien, die allesamt klein sind (1-2 KB).
Mir unverständlich, aber im Debugger schön zu verfolgen ist, dass manchmal url nicht richtig gesetzt ist und machmal nur image = nil bleibt.
Die URL wird über eine andere Methode gebildet und ist auch immer identisch.
Die Verbindung läuft lokal im LAN.
In einem Fall hat der Dialog 5 Images, davon werden (meinstens !) die ersten 2 noch geladen und der Rest bleibt irgendwo stecken.
JA, auf dem Server sind diese Dateien vorhanden
Lasse ich die App mit einem entfernten Server kommunizieren, läuft es hingegen langsam, aber richtig...!
Der Aufruf der Downloads erfolgt synchron, während ich die XML-Daten analysiere.
Hat da einer von euch eine Idee?