2017-04-26 3 views
0

Dieser Teil des Codes:falsche Art von RealmSwift

var posts: Results<Post> { 
    get { 
     return realm.objects(Post.self).sorted(byKeyPath: "id", ascending: false) 
    } 
} 

gibt ids wie

96, 950, 94, 930

Meine Post-ID ist String. Wie man sortierte Objekte richtig sortiert, ohne id Int zu machen.

+0

Verwenden Sie 'sortiert (nach:)' und stellen Sie Ihren eigenen SortDescriptor zur Verfügung. – njzk2

Antwort

1

Leider sortiert Realm beim Sortieren über eine String-Eigenschaft die Daten automatisch alphabetisch statt numerisch.

Hinzufügen der Fähigkeit, Eigenschaften manuell über einen Block/Closure is on the roadmap zu sortieren, aber es gibt nichts, um dafür gerade zu verkünden. Ich empfehle Ihnen, diesen speziellen GitHub-Thread zu "+1" zu nehmen, damit er mehr Priorität erhält. :)

Die idealste Lösung wäre, id in eine Int Eigenschaft zu ändern, wenn Sie können. Wenn dies nicht gelingt, wird die Lösung von njzk2, die Results manuell in ein Swift-Array zu sortieren, zwar funktionieren, aber dadurch werden alle Realm-Objekte gleichzeitig in den Speicher geladen (wodurch mehr Overhead entsteht), also ist es nicht optimal.