Sto provando a creare un album personalizzato nella libreria di foto di un iPhone e quindi salvare le foto che ho scattato con la fotocamera o scelto dai telefoni album personalizzato. Posso creare l'album con successo ma le foto non vengono salvate qui, ma vengono salvate nei simulatori Album di foto salvate ... Non so come dire a UIImageWriteToSavedPhotosAlbum
di salvare nel nuovo album che ho appena creato usando addAssetsGroupAlbumWithName
...Salvare le foto in album personalizzato nell'iPhone Photo Library
Ecco il codice che ho finora - ho tagliò fuori un paio di sezioni per mantenere il mio esempio di codice breve ...
- (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");
}
];
}
}
quindi ... Come ho detto, è crea il nuovo album ma non salva la foto lì. Come posso dire di salvarlo nel nuovo album? Forse suono non usare UIImageWriteToSavedPhotosAlbum
??
Nota: sto usando Xcode 4.3.2, iOS 5.1, e ARC
ottengo un problema con il nostro codice di provocare un ACCESSO BAD EXC sul '[ groupToAddTo addAsset: asset]; ' - Qualche idea per favore? Cheers .. – theiOSDude
Una possibile causa è che la tua variabile di libreria non è più valida - hai bisogno che la tua libreria rimanga in gioco finché si accede agli oggetti che hai generato utilizzandolo; Ad esempio, non è possibile ottenere il dealloc'd della libreria e quindi provare a eseguire un selettore su groupToAddTo ... Generalmente la libreria è una proprietà e la si inizializza in viewDidLoad. –
La risposta di Fernando ha funzionato per me in iOS 6.0.1 –