Estoy tratando de crear un álbum personalizado en la Biblioteca de fotos de un iPhone y luego guardar fotos que tomé con la cámara, o elegir desde los teléfonos Camera Roll a esa álbum personalizado Puedo crear el álbum correctamente, pero las fotos no se guardan allí, sino que se guardan en el álbum de simulaciones Saved Photos ... No estoy seguro de cómo decir UIImageWriteToSavedPhotosAlbum
para guardar en el nuevo álbum que acabo de crear usando addAssetsGroupAlbumWithName
...Guardar fotos en álbum personalizado en la biblioteca de fotos de iPhones
Aquí está el código que tengo hasta ahora - he corté unas cuantas secciones de mantener mi ejemplo de código corto ...
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if([mediaType isEqualToString:(__bridge NSString *)kUTTypeImage])
{
// pull GPS information from photos metadata using ALAssetsLibrary
void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *) = ^(ALAsset *asset)
{
// code snipped out
};
NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetURL
resultBlock:ALAssetsLibraryAssetForURLResultBlock
failureBlock:^(NSError *error)
{
// code snipped out
}];
// getimage from imagePicker and resize it to the max size of the iPhone screen
UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImage *resizedImage = [util_ createThumbnailForImage:originalImage thumbnailSize:[util_ determineIPhoneScreenSize]];
NSData *imageData = UIImagePNGRepresentation(resizedImage);
// code snipped out
// code snipped out
// code snipped out
// code snipped out
// code snipped out
// code snipped out
// create a new album called "My Apps Photos"
[library addAssetsGroupAlbumWithName:@"My Apps Photos"
resultBlock:^(ALAssetsGroup *group)
{
NSLog(@"in addAssetsGroupAlbumWithName resultBlock");
// save file to album
UIImageWriteToSavedPhotosAlbum(resizedImage, self, nil, nil);
}
failureBlock:^(NSError *error)
{
NSLog(@"in addAssetsGroupAlbumWithName failureBlock");
}
];
}
}
Entonces ... Como he dicho, crea el nuevo álbum pero no guarda la foto allí. ¿Cómo digo que guarde en el nuevo álbum? Quizás suene no usar UIImageWriteToSavedPhotosAlbum
??
Nota: Estoy usando Xcode 4.3.2, iOS 5.1, y ARC
me sale un problema con nuestro código causando un ACCESO BAD EXC en la '[ groupToAddTo addAsset: asset]; ' - ¿Alguna idea, por favor? Cheers .. – theiOSDude
Una posible causa es que la variable de su biblioteca ya no es válida; necesita que su biblioteca permanezca allí mientras esté accediendo a los objetos que generó al usarla; es decir, no puede hacer que la biblioteca se desasocie y luego intente ejecutar un selector en groupToAddTo ... Normalmente hago que la biblioteca sea una propiedad y la inicializo en viewDidLoad. –
La respuesta de Fernando me funcionó en iOS 6.0.1 –