Possiedo un array di ID: [INT]. Ora voglio selezionare tutti gli oggetti che hanno questi ID, ma devo seguire l'ordine di identificazione nell'array ID.Ordina per indice di array utilizzando Realm e NSPredicate
let IDs = [2, 6, 3, 4, 10, 9]
let predicate = NSPredicate(format: "id IN %@", IDs)
let objects = realm.objects(Item.self).filter(predicate)
Ma alla fine, gli oggetti sono stati ordinati in modo diverso con ID. C'è un modo per ordinare questi oggetti nell'ordine corretto?
Questo approccio materializzare istanze di classe Swift di ogni singolo oggetto corrispondente alla query per eseguire l'operazione di ordinamento. Usa 'Results.sorted (_ :)' per evitare questa materializzazione impaziente. Questo approccio è buono (necessario anche) per l'applicazione di un algoritmo di ordinamento personalizzato non supportato da Realm, tuttavia. – jpsim
Grazie. Questo funziona. Tuttavia, avremo bisogno di materializzare tutti gli oggetti prima di usare .sort. Tuttavia, Results.sorted non è in grado di rilevare l'ordine dell'ID nell'array IDs. – mashix
La domanda ha richiesto un algoritmo di ordinamento personalizzato, quindi non c'è modo di materializzare gli oggetti. – joern