私は今のところ、Recents と Favorites の 2 つのオプションがある単純な写真ピッカーを構築しようとしています。私がやっていることは、すべての写真を取得しようとしていますが、creationDate
これはデータ ソースで間違った順序で画像を返しています。データ ソースの先頭には数年前の写真があり、数分以内の写真があちこちに散らばっています。問題は、最初にメインの fetchResult にソート順を伝える必要があることだと思いますが、それは可能ではないと思います:Unsupported sort descriptor in fetch options: (creationDate, ascending, compare:
提供されたヘルプに感謝します。コード:
@property (nonatomic, strong) NSMutableOrderedSet *recentsDataSource;
@property (nonatomic, strong) NSMutableOrderedSet *favoritesDataSource;
- (void)setup
{
PHFetchResult *fetchResult = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum | PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:nil];
for (PHAssetCollection *sub in fetchResult)
{
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc]init];
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *assetsInCollection = [PHAsset fetchAssetsInAssetCollection:sub options:fetchOptions];
for (PHAsset *asset in assetsInCollection)
{
[self.recentsDataSource addObject:asset];
if (asset.isFavorite)
{
[self.favoritesDataSource addObject:asset];
}
}
}
}