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?