我正在尝试构建一个简单的相片选择器,目前有两个选项:最近和收藏。我正在尝试通过
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];
}
}
}
}