Код ошибки при сохранении изображений с помощью PHPhotoLibrary

Мой код использует ALAssetsLibrary для получения/сохранения изображений на iPhone. И в настоящее время я перехожу с ALAssetsLibrary на PHPhotoLibrary.

При миграции я искал коды ошибок, такие как ALAssetsLibraryWriteBusyError и ALAssetsLibraryWriteDiskSpaceError, но не смог. Когда мое приложение не может сохранять изображения. Я хочу, чтобы пользователи знали причину, показывая диалоговое окно с ошибкой.

Мой код для сохранения изображений, как показано ниже,

- (void)savePhotoFile:(NSURL *)fileURL completion:(savePhotoFileCompletion)completion
{
    [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{

            PHAssetChangeRequest *assetChangeRequest;
            assetChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:fileURL];

            if (self.assetCollection) {
                PHAssetCollectionChangeRequest *assetCollectionChangeRequest =
                    [PHAssetCollectionChangeRequest changeRequestForAssetCollection:self.assetCollection];
                [assetCollectionChangeRequest addAssets:@[ [assetChangeRequest placeholderForCreatedAsset] ]];
            }
        }

        completionHandler:^(BOOL success, NSError *_Nullable error) {
            DBGLog(@"success=%@, error=%@", (success ? @"YES" : @"NO"), error);
            completion(success, error);
        }];
}

Кто-нибудь знает соответствующие коды ошибок в PHPhotoLibrary? Буду очень признателен за любую информацию по этому вопросу.


person M.Masa    schedule 10.07.2016    source источник


Ответы (1)


+ creationRequestForAssetFromVideoAtFileURL: для видео. Я думаю, вам следует использовать + creationRequestForAssetFromImageAtFileURL: вместо этого.

person Lumialxk    schedule 10.07.2016
comment
как обычно, вы можете проверить код NSError, свойства userInfo собирают информацию об ошибках и подготавливают удобочитаемое сообщение для пользователей. - person Ali Kıran; 10.07.2016
comment
@AliKıran Да, я знаю о userInfo в NSError. Я хотел бы знать соответствующую информацию об ошибке для ALAssetsLibraryWriteDiskSpaceError и ALAssetsLibraryWriteBusyError. Если возможно, я реализую код повтора внутри себя. - person M.Masa; 10.07.2016