Ich versuche, den nativen iOS8-Fotopicker mit dem Photos-Framework zu reproduzieren. Ich habe ein Problem mit der Sortierung.
Sagen wir, ich mache folgendes:
Im nativen Fotopicker:
creationDate
In meiner App mache ich folgendes:
%Vor% Ich sortiere in creationDate
und bekomme folgendes Ergebnis:
creationDate
Dann ändere ich meine Abfrage, anstatt nach creationDate
zu sortieren, sortiere ich nach modificationDate
. Ich bekomme folgendes Ergebnis:
creationDate
So sieht es aus, dass Apple modificationDate
bei der Lieblingsaktion und wahrscheinlich auch bei anderen Aktionen ändert und dadurch die Sortierung der Fotos durcheinander bringt.
Wie ist es möglich, genau die Sortierung von Apple in seiner nativen App zu bekommen? Vielleicht eine kluge Verwendung von NSSortDescriptor
?
Ich habe gerade herausgefunden, dass zum Kopieren des genauen Verhaltens des nativen Fotopickers die Lösung darin bestand, meine benutzerdefinierte sortDescriptior
zu entfernen und einfach das PHFetchResult
mit Standardverhalten zu verwenden. Es erscheint so offensichtlich, nachdem ich das entdeckt habe.
Wie @knutigro erwähnt, besteht die Lösung darin, PHFetchResult
mit den Standardoptionen zu verwenden, d. h. durch Übergabe von nil
für den Parameter options
:
Aber der nächste Schritt ist das Umkehren der Sortierergebnisse, so dass das neueste Bild zuerst angezeigt wird. Es gibt keine einfache Möglichkeit, die Ergebnisse in PHFetchResult umzukehren, also habe ich die folgende Methode verwendet:
%Vor%