Какой PHAssetCollection использовать для сохранения изображения?

В iOS 8. Photos.framework я пытаюсь сохранить UIImage в библиотеку фотографий пользователя, почти так же, как вы можете долго нажимать на изображение в Safari и выбирать "Сохранить изображение". В iOS 7 это было бы просто вызывать ALAssetLibrary's writeImageToSavedPhotosAlbum:metadata:completionBlock,

Для iOS 8 нам нужно выбрать коллекцию ресурсов для добавления PHAsset, но я не могу понять, какая PHAssetCollection наиболее близка к простому сохранению в "ролике камеры" пользователя (хотя в iOS ее нет, на самом деле, нет) 8)

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
    PHAssetChangeRequest *newAssetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
    newAssetRequest.creationDate = time;
    newAssetRequest.location = location;

    PHObjectPlaceholder *placeholderAsset = newAssetRequest.placeholderForCreatedAsset;

    PHAssetCollectionChangeRequest *addAssetRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:WHICH_ASSET_COLLECTION];
    addAssetRequest addAssets:@[placeholderAsset];

} completionHandler:^(BOOL success, NSError *error) {
    NSLog(@"Success: %d", success);
}];

Я попытался получить доступ к смарт-альбому "Недавно добавленные", но он не позволяет добавлять в него новый контент.

2 ответа

Решение

Вам не нужно возиться с PHAssetCollection. Просто добавьте, выполнив:

    [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
        PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:<#your photo here#>];
    } completionHandler:^(BOOL success, NSError *error) {
        if (success) {
            <#your completion code here#>
        }
        else {
            <#figure out what went wrong#>
        }
    }];

На самом деле в 8.1 Camera Roll вернулся. Это умный альбом, подтипом которого является SmartAlbumUserLibrary.

Другие вопросы по тегам