How to get photo from My Photo Stream Album

后端 未结 2 394
长情又很酷
长情又很酷 2021-01-25 03:14

I want to get Photo from My Photo Stream. I have only localIdentifier of PHAsset.

For photos other than My Photo Stream album I am using below code for retrieve PHAsset.

2条回答
  •  孤街浪徒
    2021-01-25 04:19

    I got an answer myself. I retrieve all photostream photos and compare it with particular localIdentifier. Below is my code.

    PHFetchOptions *userAlbumsOptions = [PHFetchOptions new];
                userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:@"estimatedAssetCount > 0"];
                PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumMyPhotoStream options:userAlbumsOptions];
    
                [userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx1, BOOL *stop) {
                    NSLog(@"album title %@", collection.localizedTitle);
                    PHFetchOptions *fetchOptions = [PHFetchOptions new];
                    fetchOptions.predicate = [NSPredicate predicateWithFormat:@"self.localIdentifier CONTAINS [cd] 'my identifier value'"];
                    PHFetchResult *assetsFetchResult = [PHAsset fetchAssetsInAssetCollection:collection options:fetchOptions];
                    [assetsFetchResult enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop1) {
                        [[PHImageManager defaultManager] requestImageDataForAsset:asset options:option resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                            UIImage *imgResult = [UIImage imageWithData:imageData scale:1];
                        }];
                    }];
                }]
    

提交回复
热议问题