2017-04-26 51 views
0

這部分代碼:排序錯誤的RealmSwift

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

返回的ID等

96,950,94,930

我的交id爲String。如何在不使id Int的情況下獲得正確的排序對象。

+0

使用'sorted(by:)'並提供您自己的SortDescriptor。 – njzk2

回答

1

不幸的是,當通過String屬性進行排序時,Realm按字母順序自動排序,而不是數字排序。

添加手動通過塊/封閉is on the roadmap對屬性進行排序的功能,但目前還沒有任何聲明。我建議你去'+1'那個特定的GitHub線程,這樣它可以獲得更多的優先級。 :)

如果可以,最理想的解決方案是將id更改爲Int屬性。如果不這樣做,njzk2將Results手動排序爲Swift數組'will'的解決方案將起作用,但這會將所有Realm對象一次寫入內存(導致更多開銷),因此它不是最優的。