Mam tablicę identyfikatorów: [INT]. Teraz chcę zaznaczyć, że wszystkie obiekty mają te identyfikatory, ale muszą podążać za kolejnością id w tablicy ID.Sortowanie według indeksu tablicy za pomocą Realm i NSPredicate
let IDs = [2, 6, 3, 4, 10, 9]
let predicate = NSPredicate(format: "id IN %@", IDs)
let objects = realm.objects(Item.self).filter(predicate)
Ale w końcu obiekty zostały zamówione w inny sposób za pomocą identyfikatorów. Czy istnieje sposób, w jaki mogę uporządkować te obiekty we właściwej kolejności?
Takie podejście będzie zmaterializować Swift instancje klasy każdego pojedynczego obiektu pasujących do zapytania, aby wykonać operację sortowania. Użyj 'Results.sorted (_ :)', aby uniknąć tej intensywnej materializacji. To podejście jest jednak dobre (konieczne nawet) do zastosowania niestandardowego algorytmu sortowania nieobsługiwanego przez Realm. – jpsim
Dzięki. To działa. Jednak przed użyciem .sort musimy zmaterializować wszystkie obiekty. Results.sorted nie jest w stanie wykryć kolejności id w tablicy ID. – mashix
Pytanie o niestandardowy algorytm sortowania, więc nie ma możliwości zmaterializowania obiektów. – joern