2012-03-29 5 views
-2

Ich versuche, ein Bild in einem bestimmten Verzeichnis zu löschen oder zu überschreiben. Ich greife alle meine Bilder in einem Array und platziere sie in einer Tabellenansicht. Wenn ein Bild angeklickt wird, wird die Fotorolle geöffnet und der Benutzer wählt ein Bild aus. Wenn der Imagepicker-Controller freigegeben wird, rufe ich meine Methoden auf, um zu versuchen, das ursprüngliche Bild zu löschen und das neue Bild im spezifischen Dateipfad zu speichern. Ich erhalte einen seltsamen Fehler beim Löschen des Bildes und bin mir nicht sicher, wie ich ein besseres Protokoll zum Speichern des Bildes erstellen kann, aber es wird auch nicht gespeichert. Ich würde mich über einen Input freuen!Löschen/Überschreiben von Image-Dateien auf dem iPhone obj c

- (void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info { 
NSLog(@"image picker did finish"); 




widgetImg.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 

change.enabled = YES; 

[self saveImage:widgetImg.image :ImgName]; 
NSString *path = [NSString 
stringWithFormat:@"/Library/Themes/%@/iSetUp/UserPhotos/%@",selectedThemeName,ImgName]; 


NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSError *error; 
BOOL fileExists = [fileManager fileExistsAtPath:path]; 
NSLog(@"Path to file: %@", path);   
NSLog(@"File exists: %d", fileExists); 
NSLog(@"Is deletable file at path: %d", [fileManager isDeletableFileAtPath:path]); 
if (fileExists) 
{ 
    BOOL success = [fileManager removeItemAtPath:path error:&error]; 
    if (!success) NSLog(@"Error: %@", [error localizedDescription]); 
} 


[self dismissModalViewControllerAnimated:YES]; 



} 



- (void)saveImage:(UIImage*)image:(NSString*)imageName { 
//convert image into .png format. 
NSData *imageData = UIImagePNGRepresentation(image); 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSString *IMGPath = [NSString 
stringWithFormat:@"/Library/Themes/%@/iSetUp/UserPhotos/",selectedThemeName]; 


[fileManager createFileAtPath:IMGPath contents:imageData attributes:nil]; 
NSLog(@"image saved"); 

} 


2012-03-29 16:05:05.907 iSetUp[1258:707] image picker did finish 
2012-03-29 16:05:09.046 iSetUp[1258:707] image saved 
2012-03-29 16:05:09.047 iSetUp[1258:707] Path to file: 
/Library/Themes/Modernistic/iSetUp/UserPhotos/IMG_0183.JPG 
2012-03-29 16:05:09.048 iSetUp[1258:707] File exists: 1 
2012-03-29 16:05:09.049 iSetUp[1258:707] Is deletable file at path: 0 
2012-03-29 16:05:09.053 iSetUp[1258:707] Error: The operation couldn’t be completed. 
(Cocoa error 513.) 

Antwort

1

Sie können über das iOS SDK nicht direkt auf solche Ordner zugreifen. Sie müssen Dateien mit den Systemfunktionen speichern und lesen, die den richtigen Pfad zurück:

NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] 
NSString *pathToMenuLoopFile = [rootPath stringByAppendingPathComponent:@"Menu Loop.mp3"]; 

Wenn Sie suchen, Dateien zu laden, die Sie in Ihrem Xcode-Projekt gehören, nehmen Sie bitte einen Blick auf diesen Beitrag: Loading data files in iPhone project

+0

wünschen dem ich helfen konnte, habe ich noch nie geschrieben Apps für jailbroken Telefone oder sonst etwas. Ich wäre auch interessiert zu wissen, wie man das macht, was man verlangt. Vielleicht solltest du das in der Frage angeben, damit Leute mit diesem Wissen es finden? – rosslebeau

+0

Sie können die Idee von diesem Beitrag http://stackoverflow.com/questions/3847239/iphone-run-app-as-root bekommen – FreeAppl3