2010-12-15 62 views
1

Comment puis-je télécharger et sauvegarder une image à la racine de l'application donc en gros je peux accéder à l'image viatélécharger et enregistrer l'image à la racine

[UIImage imageNamed:@"myimage.jpg"]; 

Merci

Mason

+2

imageNamed: fonctionne uniquement avec les images que vous avez déployées avec votre package d'applications. Mais vous ne pouvez pas écrire dans ce paquet - vous devez enregistrer votre image dans le dossier de vos documents d'application. – henklein

+0

Ohh ok alors comment est-ce que je ferais cela via le dossier de documents? – user393273

Répondre

2

Vous devez d'abord obtenir l'image des données

NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://media03.linkedin.com/mpr/mpr/shrink_80_80/p/3/000/064/2e2/1bd3849.jpg"]]; 

Ensuite, vous devez écrire les données dans le répertoire Documents

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *pathLD = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"imageLD%d.jpeg",[[NSDate date] timeIntervalSince1970]]]; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 
if (![fileManager fileExistsAtPath: pathLD]){ 
    [imageData writeToFile:pathLD atomically:YES]; 
} else { 
    NSLog(@"File exists at path:%@", pathLD); 
} 

Pour obtenir l'image à partir de Documents que vous faites:

[UIImage imageWithContentsOfFile:pathLD]; 

Bonne chance: D;

+0

Merci: D grande aide – user393273

0

Vous shouldn 't pour diverses raisons. Considérez votre répertoire d'application comme étant en lecture seule.

Vous devez utiliser le répertoire Documents ou Library. Apple vous recommande d'utiliser le répertoire Documents si vos fichiers doivent être accessibles via iTunes (si vous avez activé le partage de fichiers via iTunes) ou d'utiliser un sous-répertoire personnalisé de Library (que vous devez créer avec NSFileManager) s'il le faut. ne pas être visible par l'utilisateur (mais devrait être sauvegardé).

Vous pouvez interroger le chemin vers le répertoire de la bibliothèque comme ceci:

NSArray *paths; 
paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, 
      NSUserDomainMask, YES); 
// dir = [paths objectAtIndex:0]; 

de remplacement NSLibraryDirectory avec NSDocumentsDirectory pour obtenir le répertoire Documents.

Ensuite, vous faire une méthode qui retourne le chemin complet à votre image, et alors vous feriez:

[UIImage imageWithContentsOfFile:[self pathForImage:@"myimage.jpg"]] 
+0

Alors, comment puis-je enregistrer l'image en premier lieu? – user393273