写真フレームワークを使用してネイティブの iOS8 フォトピッカーを再現しようとしています。並べ替えに問題がありました。
私が次のことをするとしましょう:
- Camera+ アプリで写真を編集し、ギャラリーに保存します。
- 別の写真がお気に入りです。
ネイティブのフォトピッカー:
- すべての写真 (お気に入りの写真も含む) は、
creationDate
- 編集して保存した写真は、最後に変更した写真なので、一番下に表示されます。オリジナルは、作成日に従って元の場所に置かれます。
私のアプリでは、次のことを行います。
PHFetchOptions *options = [PHFetchOptions new];
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %ld", PHAssetMediaTypeImage];
PHFetchResult *fetchResult = [PHAsset fetchAssetsInAssetCollection:self.assetCollection options:options];
並べ替えてcreationDate
、次の結果を取得します。
- すべての写真 (お気に入りの写真も含む) は、
creationDate
- 私が編集した写真は、元の作成日に従って元の直後になります。
次に、クエリを変更して、 でソートする代わりに でソートcreationDate
しmodificationDate
ます。次の結果が得られます。
- すべての写真は、一般的に次の順序とほぼ同じです。
creationDate
- 編集した写真は一番下になります。これは私がネイティブアプリで望んでいることです。
- お気に入りの写真も一番下になります:-(
そのため、ApplemodificationDate
はお気に入りのアクションを変更し、おそらく他の種類のアクションも変更したようで、これにより写真の並べ替えが台無しになります。
Appleがネイティブアプリで使用するソートを正確に取得するにはどうすればよいですか? 多分いくつかの賢い使用NSSortDescriptor
?