Ich habe ein Array von IDs: [INT]. Jetzt möchte ich auswählen, dass alle Objekte diese IDs haben, aber müssen die Reihenfolge der ID im IDs-Array folgen.Sortieren nach Array-Index mit Realm und NSPredate
let IDs = [2, 6, 3, 4, 10, 9]
let predicate = NSPredicate(format: "id IN %@", IDs)
let objects = realm.objects(Item.self).filter(predicate)
Aber am Ende wurden Objekte auf andere Weise mit IDs sortiert. Gibt es eine Möglichkeit, dass ich diese Objekte in die richtige Reihenfolge sortieren kann?
Dieser Ansatz Swift Klasseninstanzen jedes einzelnen Objekts materialisieren wird die Abfrage Anpassung der Sortiervorgang auszuführen. Verwenden Sie 'Results.sorted (_ :)', um diese eifrige Materialisierung zu vermeiden. Dieser Ansatz ist gut (sogar notwendig), um einen benutzerdefinierten Sortieralgorithmus anzuwenden, der jedoch nicht von Realm unterstützt wird. – jpsim
Danke. Das funktioniert. Bevor wir .sort verwenden, müssen wir jedoch alle Objekte materialisieren. Results.sorted kann die ID-Reihenfolge im IDs-Array jedoch nicht erkennen. – mashix
Die Frage wurde nach einem benutzerdefinierten Sortieralgorithmus gestellt, so dass es keine Möglichkeit gibt, die Objekte zu materialisieren. – joern