Erreur lors de l'enregistrement de données de répertoire de cache (iPhone)
Je suis en train d'enregistrer des images en utilisant le code suivant:
- (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;
}
J'obtiens une erreur:
2009-06-23 16:39:19.740 XXX[33454:20b] Operation could not be completed. (Cocoa error 4.)
J'ai regardé ce et voir que l'erreur a la signification suivante:
NSFileNoSuchFileError = 4, //Attempt to do a file system operation on a non-existent file
Qui n'a pas de sens puisque le fichier ne devrait pas exister.
J'ai essayé d'écrire de la png à la représentation et à l'aide de la méthode de convenance:
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
Je suis en utilisant un code similaire pour enregistrer les plists, et qu'ils fonctionnent très bien. Je ne suis pas sûr que le problème est. Des idées?
- Il semble que vous enregistrez dans un répertoire à l'intérieur de la cache dir. (cacheDirectory/**cacheDirectoryPath**/filename) a l'intermediare dirs été créé?
- Non, n'est-ce pas créé automatiquement?
- Je ne le pense pas. Essayez de supprimer les intermédiaires chemin et voir ce qui se passe...
- Merci! Qui était-il, si vous voulez o post cela comme une réponse, je peux le marquer comme étant la bonne réponse.
- j'ai eu la même erreur, mais pour moi, c'était que j'étais à l'appel de la saveToURL dans uidocument rapide.
Vous devez vous connecter pour publier un commentaire.
Je vois que vous utilisez certains intermédiaires répertoire dans le Répertoire de Cache, sont/ils créés? Si pas, essayez de les retirer ou de les utiliser
pour les créer avant de