Próbuję zbudować prosty próbnik zdjęć, który ma dwie opcje na teraz: Ostatnie i Ulubione. Co robię, próbuję uzyskać wszystkie zdjęcia przez creationDate
, ale to daje obrazy w niewłaściwej kolejności w moim źródle danych. Na początku źródła danych znajdują się zdjęcia sprzed lat, a także zdjęcia, które nie są starsze niż kilka minut. Myślę, że problem polega na tym, że najpierw muszę podać główną komendę fetchResult, ale nie wydaje mi się to możliwe: Unsupported sort descriptor in fetch options: (creationDate, ascending, compare:
PHFetchResult uzyskać wszystkie zdjęcia i sortować według daty niespójne
Byłbym wdzięczny za każdą oferowaną pomoc. Kod:
@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];
}
}
}
}
PHFetchResult nie odpowiada sekwencji protokołu, dlatego nie można go używać do wewnątrz .. w oświadczeniu. – saiday