Enregistrement de l'image dans le directory Documents et récupération de la pièce jointe

J'ai du mal à find datatables de NSBundle & DocumentDirectory, j'ai une image de la camera " imageView " que je sauvegarde dans NSDocumentDirectoy et que je veux récupérer pour la joindre à un email,

Voici le code d'économie:

 - (IBAction)saveImage { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSSsortingng *documentsDirectory = [paths objectAtIndex:0]; NSSsortingng *savedImagePath = [documentsDirectory ssortingngByAppendingPathComponent:@"savedImage.png"]; UIImage *image = imageView.image; // imageView is my image from camera NSData *imageData = UIImagePNGRepresentation(image); [imageData writeToFile:savedImagePath atomically:NO]; } 

Voici le nouveau code de données:

  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSSsortingng *documentsDirectory = [paths objectAtIndex:0]; NSSsortingng *appFile = [documentsDirectory ssortingngByAppendingPathComponent:@"savedImage.png"]; NSData *myData = [[[NSData alloc] initWithContentsOfFile:appFile] autorelease]; [picker addAttachmentData:myData mimeType:@"image/png" fileName:@"savedImage"]; 

     - (IBAction)getImage { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSSsortingng *documentsDirectory = [paths objectAtIndex:0]; NSSsortingng *getImagePath = [documentsDirectory ssortingngByAppendingPathComponent:@"savedImage.png"]; UIImage *img = [UIImage imageWithContentsOfFile:getImagePath]; } 

    Cela devrait vous aider à démarrer!

    Swift 3

     // Create a URL let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first let imageURL = documentsURL?.appendingPathComponent("MyImageName.png") // save image to URL let myImage = imageView.image! // or wherever you have your UIImage do { try UIImagePNGRepresentation(myImage)?.write(to: imageURL!) } catch {} // Use the URL to resortingeve the image for sharing to email, social media, etc. // docController.URL = imageURL // ... 

    Je force le déballage de certaines options pour plus de brièveté. Utilisez guard ou if let votre code.

    Étant donné que chaque application iPhone se trouve dans son propre sandbox, vous n'avez pas access à un dossier de documents à l'échelle de l'appareil. Pour joindre une image à un e-mail, enregistrez l'image dans votre propre dossier de documents. Essayez d'utiliser [@ "~ / Documents" SsortingngByExpandingTildeInPath] pour get votre dossier de documents local – cela fonctionne pour moi. Il semble que la technique que vous utilisez pour joindre l'image à un courriel est correcte.

    J'espère que cela pourra aider,

    Essaye celui-là :

      -(void)setProfilePic { NSArray *docpaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSSsortingng *documentsDirectory = [docpaths objectAtIndex:0]; NSSsortingng *imagePath = [documentsDirectory ssortingngByAppendingPathComponent:@"Image.png"]; NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:imagePath]]; UIImage *thumbNail = [[UIImage alloc] initWithData:imgData]; [profilePic_btn setBackgroundImage:thumbNail forState:UIControlStateNormal]; }