Recupera la lista de canciones ordenadas por el último tiempo de reproducción en iOS

Necesito obtener una lista de losN Las últimas canciones reproducidas desde un dispositivo iOS, en orden.

La única forma en que puedo imaginarme haciéndolo, en este momento, es pasando todas las canciones a través de unMPMediaQuery y ordenarlos manualmente porlastPlayedDate.

Esta es una operación potencialmente costosa y me preguntaba si habría un mejor enfoque.

Editar: Después de algunas pruebas, esta es una operación muy costosa. En una biblioteca de prueba de 2500 canciones, se tardó alrededor de 20 segundos en:

Consigue todas las canciones.Asigne una fecha a todas las canciones que nunca se tocaron (1 de enero de 1970).Ordénalos por fecha.Trae el primeroN entradas.

Cualquier sugerencia de mejoras sería apreciada.

Edición 2: resuelto ahora, pero solo para que quede constancia, aquí está lo que estaba haciendo.

Estaba ordenando usando un bloque como se describe aquí:https://stackoverflow.com/a/805589/112702. Simplemente cambiando el método de clasificación a lo que está en la respuesta de Bryan mejoró mi velocidad casi 20 veces en un iPod Touch 3.

Respuestas a la pregunta(2)

Su respuesta a la pregunta