Я пишу приложение, которое позволяет пользователям делать фотографии и назначать их на устройство. Для этого мне нужно иметь возможность сохранить URL-адрес снятого изображения и затем перезагрузить его.
Я знаю, что было несколько дискуссий по этому поводу, но странным образом ни один из Ansers не помог мне ...
Итак, вот мой код для сохранения изображения:
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
ALAssetsLibrary * library = [[ALAssetsLibrary alloc] init];
UIImage * image;
// Request to save Image
if ([picker sourceType] == UIImagePickerControllerSourceTypeCamera) {
image = [info objectForKey:UIImagePickerControllerEditedImage];
[library writeImageToSavedPhotosAlbum:[image CGImage] orientation:(ALAssetOrientation)[image imageOrientation] completionBlock:^(NSURL * assertURL, NSError * error){
if (error) {
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"PictureSaveErrorTitle", @"Title if saving picture fails")
message:NSLocalizedString(@"PictureSaveErrorMessage", @"Message if saving picture fails")
delegate:nil
cancelButtonTitle:NSLocalizedString(@"PictureSaveErrorOK", @"OK if saving picture fails")
otherButtonTitles:nil];
[alert show];
} else {
[self setUserImage:[assertURL absoluteString]];
[imageOfDevice setImage:image];
}
}];
} else {
image = [info objectForKey:UIImagePickerControllerOriginalImage];
[self setUserImage:[[info valueForKey:UIImagePickerControllerReferenceURL] path]];
}
[self dismissModalViewControllerAnimated:YES];
}
И это для перезагрузки изображения:
if (userImage != nil) {
ALAssetsLibrary * library = [[ALAssetsLibrary alloc] init];
[library assetForURL:[NSURL fileURLWithPath:userImage]
resultBlock:^(ALAsset * asset){
[imageOfDevice setImage:[UIImage imageWithCGImage:[asset thumbnail]]];
}
failureBlock:^(NSError * error){
NSLog(@"cannot get image - %@", [error localizedDescription]);
}];
}
Кто-нибудь видит какую-то ошибку?
Спасибо за помощь,
sensslen