Fehler beim Speichern der Daten im Cache-Verzeichnis (iPhone)

Ich versuche, Bilder mit dem folgenden Code zu speichern:

<code>- (void)writeData{

    if(cacheFileName==nil)
        return;
    if(cacheDirectoryPath==nil)
        return;


    if (![[NSFileManager defaultManager] fileExistsAtPath:[self filePath]]) {        

        NSData *imageData = UIImageJPEGRepresentation(self.image, 0.9);

        NSError *writeError= nil;

        BOOL didWrite =  [imageData writeToFile:[self filePath] options:NSAtomicWrite error:&writeError];

        if(writeError)
            NSLog([writeError localizedDescription]);

        if(didWrite)
            NSLog(@"image saved");
        else
            NSLog(@"image not saved");


    }
}





 - (NSString *)filePath{

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString *cacheDirectory = [paths objectAtIndex:0]; 
    NSString *filename = [cacheDirectory stringByAppendingPathComponent:cacheDirectoryPath]; 
    filename = [filename stringByAppendingPathComponent:cacheFileName]; 
    NSLog(filename);

    return filename;

}
</code>

Ich erhalte einen Fehler:

<code>2009-06-23 16:39:19.740 XXX[33454:20b] Operation could not be completed. (Cocoa error 4.)
</code>

Ich habe dies nachgeschlagen und festgestellt, dass der Fehler die folgende Bedeutung hat:

<code> NSFileNoSuchFileError = 4,                 // Attempt to do a file system operation on a non-existent file
</code>

Was keinen Sinn ergibt, da die Datei nicht existieren sollte.

Ich habe versucht, die PNG-Darstellung zu schreiben und die Bequemlichkeitsmethode zu verwenden:

<code>- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
</code>

Ich verwende ähnlichen Code, um Plists zu speichern, und sie funktionieren einwandfrei. Ich bin mir nicht sicher, wo das Problem liegt. Irgendwelche Ideen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage