2017-07-01 6 views
0

iCloud共有アルバムを除くユーザーのフォトライブラリ内のすべてのアルバムのリストを取得しようとしています。ここで私は、これまで使用していますコードです:アセットコレクションを取得してiCloud共有アルバムを除外します

PHFetchOptions *userAlbumsOptions = [PHFetchOptions new]; 
userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:@"estimatedAssetCount > 0"]; 
userAlbumsOptions.includeAssetSourceTypes = PHAssetSourceTypeUserLibrary; 

PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options:userAlbumsOptions]; 

for (PHAssetCollection *album in userAlbums) { 
    [self.albums addObject:album]; 
} 

を私が正しく理解している場合は、userAlbumsOptions.includeAssetSourceTypesプロパティは、iCloudの共有アルバムを除外する必要があります。しかし、彼らはまだリストに表示されています。誰かが私が間違っているかもしれないことを提案することはできますか

答えて

0

一つの可能​​な解決策:基本的に

PHFetchOptions *userAlbumsOptions = [PHFetchOptions new]; 
userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:@"estimatedAssetCount > 0"]; 

PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:userAlbumsOptions]; 

for (PHAssetCollection *album in userAlbums) { 
    if (album.assetCollectionSubtype != PHAssetCollectionSubtypeAlbumCloudShared) { 
     [self.albums addObject:album]; 
    } 
} 

は、すべての資産のコレクションを取得しますが、唯一のサブタイプがPHAssetCollectionSubtypeAlbumCloudSharedがない場合にはアルバムの配列に追加します。これは機能しますが、私はそれに満足していません。 PHAssetCollectionSubtypeAlbumCloudSharedのチェックは必要ありません。

関連する問題