J'utilise NSData pour conserver une image dans mon application. Je sauve l'image comme si (dans mon délégué App):Sauvegarder des données - fonctionne sur le simulateur, pas sur le périphérique
- (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"Saving data");
NSData *data = UIImagePNGRepresentation([[viewController.myViewController myImage]image]);
//Write the file out!
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path_to_file = [documentsDirectory stringByAppendingString:@"lastimage.png"];
[data writeToFile:path_to_file atomically:YES];
NSLog(@"Data saved.");
}
et je le charge en arrière comme si (dans mon contrôleur de vue, sous viewDidLoad
):
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path_to_file = [documentsDirectory stringByAppendingString:@"lastimage.png"];
if([[NSFileManager defaultManager] fileExistsAtPath:path_to_file])
{
NSLog(@"Found saved file, loading in image");
NSData *data = [NSData dataWithContentsOfFile:path_to_file];
UIImage *temp = [[UIImage alloc] initWithData:data];
myViewController.myImage.image = temp;
NSLog(@"Finished loading in image");
}
Ce code fonctionne à chaque fois sur le simulateur, mais sur l'appareil, il ne peut jamais sembler se recharger dans l'image. Je suis assez sûr que cela sauve, mais je n'ai aucune vue du système de fichiers.
Est-ce que je fais quelque chose de bizarre? Le simulateur a-t-il un moyen différent d'accéder à ses répertoires que l'appareil?
Merci!
Est-ce que cela a quelque chose à voir avec la gestion des droits? – DMan
Quel genre de gestion des droits? Est-ce que le simulateur diffère de l'appareil par une sorte de permission liée? Merci pour votre réponse! –
Eh bien, je ne suis pas un développeur d'iPhone, mais j'ai entendu dire que l'iPhone était assez restrictif ... et votre ligne, «à peu près sûre, ça sauve», n'est-ce pas? Je vois que vous avez un NSLog, mais si ce n'est pas le cas, il devrait retourner une erreur. – DMan