Filtrar objetos de reino para obtener solo un objeto (distinto) por atributo

Permítanme explicar el título de primera causa puede ser un poco confuso.

Digamos que tengo este reino objetos del tipo Película:

Movie1(id: 0, genre: "horror")

Movie2(id: 1, genre: "horror")

Movie3(id: 3, genre: "sci-fi")

Lo que necesito hacer es obtener el primero para cada género (en este casoMovie1 yMovie3)

Me gustaría hacerlo sin bucles usando solorealm + NSPredicate, así que el rendimiento es mejor, pero estoy un poco atrapado allí ...

Hasta ahora lo que obtuve es esto:

Realm().objects(Movie.self).sorted(byKeyPath: id, ascending: true)
.value(forKeyPath: "@distinctUnionOfObjects.genre") 

Esto me devuelve una matriz con("horror", "sci-fi") y realmente no puedo entender cuál debería ser el siguiente paso. Si trato de hacer un:

 .filter("genre IN %@", arrayWithDistinctGenres) 

me devolverá todos los objetos.

Probablemente sea simple, pero no puedo entender cómo hacerlo.

Cualquier ayuda es apreciada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta