varios - no puedo ver archivos adjuntos en mi iphone
Guardar imagen en el directorio de Documentos y recuperar datos adjuntos de correo electrónico (4)
Como cada aplicación de iPhone está en su propio entorno limitado, no tiene acceso a una carpeta de documentos para todo el dispositivo. Para adjuntar una imagen a un correo electrónico, guarde la imagen en su propia carpeta de documentos. Intenta usar [@ "~ / Documents" StringByExpandingTildeInPath] para obtener tu carpeta local de documentos, eso funciona para mí. Parece que la técnica que está utilizando para adjuntar la imagen a un correo electrónico es correcta.
Espero que ayude,
Tengo problemas para NSBundle
datos de NSBundle
y DocumentDirectory, tengo una imagen de cámara " imageView " que estoy guardando en NSDocumentDirectoy
y luego quiero recuperarla para adjuntarla a un correo electrónico.
Aquí el código de ahorro:
- (IBAction)saveImage {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
UIImage *image = imageView.image; // imageView is my image from camera
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savedImagePath atomically:NO];
}
Aquí está el nuevo código de obtención de datos:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
NSData *myData = [[[NSData alloc] initWithContentsOfFile:appFile] autorelease];
[picker addAttachmentData:myData mimeType:@"image/png" fileName:@"savedImage"];
Prueba este:
-(void)setProfilePic
{
NSArray *docpaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [docpaths objectAtIndex:0];
NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:@"Image.png"];
NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:imagePath]];
UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
[profilePic_btn setBackgroundImage:thumbNail forState:UIControlStateNormal];
}
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 retrieve the image for sharing to email, social media, etc.
// docController.URL = imageURL
// ...
Forzo desenvolver algunas de las opciones por brevedad. Use guard
o if let
su código.
- (IBAction)getImage {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
}
¡Esto debería hacerte comenzar!