imageWithContentsOfFile: findet das image nicht obwohl es vorhanden ist.

  • imageWithContentsOfFile: findet das image nicht obwohl es vorhanden ist.

    Hoi,

    ich versteh gerade ein Fehler nicht der relativ selten auftritt.
    ich lade ein Bild per:

    Quellcode

    1. NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:path]];
    2. if([imageData writeToFile:imageSavePath atomically:YES] && [imageData length] > 0) {
    3. [image setValue:imageSavePath forKey:@"path"];
    4. }
    5. [imageData release];


    und Speicher es unter Dokuments in einen Ordner namens images ab. Danach schreibe ich den Pfad in das Passende ManagedObject.
    zu 99% der fälle funktioniert das wunderbar nur dieses 1% konnte ich gerade nach Gefühlen 10.000 mal App löschen und neu installieren endlich reproduzieren.

    vorweg das Bild liegt wirklich dort ich seh es im Organizer.
    md5 check war auch erfolgreich (mit einer Kopie die ich über den Mac geladen hab).

    hier versuche ich es anzuzeigen:

    Quellcode

    1. NSLog(@"OBJECT: %@", imageObj);
    2. if([[NSFileManager defaultManager] fileExistsAtPath:[imageObj valueForKey:@"path"]]) {
    3. NSLog(@"found");
    4. } else {
    5. NSLog(@"not found");
    6. }
    7. UIImage *image = [UIImage imageWithContentsOfFile:[imageObj valueForKey:@"path"]];
    8. self.imageView.image = image;


    das gibt als log Ausgabe:

    Brainfuck-Quellcode

    1. data: {
    2. festival = "0x3e87a70 <x-coredata://FD06CE7E-5FF0-4D67-BCC8-CA3165B535DA/XXXXX/p1>";
    3. path = "/var/mobile/Applications/77E46F20-D636-4639-9183-1DA0BBC58531/Documents/images/d14589246933a230e5d0bb613be6ca8a";
    4. pos = 1;
    5. state = 0;
    6. url = "https://xxx.xxxxxx.xx/transfer/img/image2.jpeg";
    7. })
    8. 2011-11-03 14:05:40.923 XX[2754:707] found
    9. -----------------------------------------------------
    10. und hier ist es fehlerhaft
    11. -----------------------------------------------------
    12. data: {
    13. festival = "0x1355d0 <x-coredata://827428B3-B0E2-479C-88D3-52BE390AEE24/XXXXX/p1>";
    14. path = "/var/mobile/Applications/8CCEBAB6-57F9-4D64-B26D-DE315BA9E499/Documents/images/d14589246933a230e5d0bb613be6ca8a";
    15. pos = 1;
    16. state = 0;
    17. url = "https://xxx.xxxxxx.xx/transfer/img/image2.jpeg";
    18. })
    19. 2011-11-03 14:04:36.467 XX[2720:707] not found
    Alles anzeigen



    ich hab als ich den Fehler reproduzieren konnte (das xcappdata gespeichert). Und kann den Fehler so wieder herstellen ich pass natürlich in der sqlite Datei die AppID immer an.
    ich versteh es nicht :(

    ich kann nur raten und denke in Richtung Rechte.
    俺の世界にようこそ
  • das läuft alles im mainThread :(

    ich hab jetzt ne neue Methode geschrieben die diesen unwahrscheinlichen Fehler abfängt ... wenn er es nicht findet soll er es nochmal runterladen ... ist zwar nicht wunderschön (man hat 1-2 sec Wartezeit) aber besser als ein schwarzes Bild :D
    俺の世界にようこそ