получить PHAsset из UIImagePickerController - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь получить PHAsset из UIImagePickerController и использую следующий код:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

     //   NSURL *imageURL = [info valueForKey:UIImagePickerControllerReferenceURL];
        PHAsset *phAsset = [info valueForKey:UIImagePickerControllerPHAsset];
        if (phAsset) {
            [assetsArr addObject:phAsset];
            [galleryArr addObject:[info valueForKey:UIImagePickerControllerOriginalImage]];
        }

        dispatch_async(dispatch_get_main_queue(), ^(void) {
            [self.galleryCollectionView reloadData];
            [picker dismissViewControllerAnimated:YES completion:nil];
        });
    });


}

Если тип источника UIImagePickerControllerSourceTypePhotoLibrary, тогда я могу получить PHAsset по указанному выше коду. Но если тип источника UIImagePickerControllerSourceTypeCamera, то PHAsset равен нулю.

Как я могу получить PHAsset в этом случае?

1 Ответ

0 голосов
/ 11 сентября 2018

Если UIImagePickerControllerReferenceURL имеет какое-либо значение, вы можете получить актив, используя следующий код:

PHFetchResult<PHAsset *> *result = [PHAsset fetchAssetsWithALAssetURLs:[NSArray arrayWithObject:imageURL] options:nil];

В зависимости от ваших требований может быть выбрано несколько активов.

...