Как сохранить и перезагрузить изображение с помощью ALAsset?

Я пишу приложение, которое позволяет пользователям снимать фотографии и назначать их устройству. Для этого мне нужно иметь возможность сохранять 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]; } 

И это для перезагрузки Image:

 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

One Solution collect form web for “Как сохранить и перезагрузить изображение с помощью ALAsset?”

Простое решение состоит в том, что вы передаете в absoluteString вместо NSUrl.

Этот код работает для меня внутри сборщика.

 ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; if( [picker sourceType] == UIImagePickerControllerSourceTypeCamera ) { UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; [library writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation completionBlock:^(NSURL *assetURL, NSError *error ) { NSLog(@"IMAGE SAVED TO PHOTO ALBUM"); [library assetForURL:assetURL resultBlock:^(ALAsset *asset ) { NSLog(@"we have our ALAsset!"); } failureBlock:^(NSError *error ) { NSLog(@"Error loading asset"); }]; }]; } 
  • Создание облегченной версии в Xcode 4
  • Не удается удалить файлы из mainBundle
  • Как автоматически увеличивать версию Bundle в Xcode 4?
  • Как открыть браузер памяти в Xcode 4?
  • Как отлаживать «Ошибка Xcode CodeSign: отсутствует файл прав Entitlements.plist» в Xcode 4?
  • Удерживать показывается MaxInt
  • Требуется ли Entitlements.plist для распределений в Xcode 4?
  • Протоколы и назначение свойств в iOS 5
  • Как переименовать xib-файл в Xcode 4?
  • Как я могу использовать boost :: test с xcode 4 для тестирования кода ios c ++?
  • Xcode 4 сбой при открытии проекта
  • Interesting Posts

    ожидается, что приложения будут иметь консоль контроллера корневого представления

    не существует допустимой строки права доступа aps-environment для приложения в приложении «Уведомления»

    Получение внутренней ошибки 500 с использованием MKNetworking Загрузка изображения PHP

    ios swift – фон навигационного элемента становится черным при возврате на экран, где скрывается панель навигации

    Visual Studio Cordova Отсутствует ключ Info.plist

    Уведомления о толчке Firebase push 3

    UILabel с заданной прозрачностью, но textLabel должен быть непрозрачным

    Невозможно отправить приложение в iTunes connect: «Новые приложения и обновления приложений должны быть созданы с общедоступными (GM) версиями Xcode"

    Как я могу настроить ABPeoplePickerNavigationController как MainView?

    Не удалось обновить до Xcode 8.3

    Как разобрать полученный ответ

    Отключение неявных анимаций в –

    Почему мой NSMutableArray содержит ноль по некоторым индексам?

    Ошибка приема «Не удалось подключиться к задаче; порт недействителен "при попытке запуска инструментов Xcode 7, средства выделения / утечки на подключенном iPad

    Вид InputAccessoryViewWillDisappear: метод, названный в начале iOS 9

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.