Swift 斯威夫特王国。我们如何重新排序结果项
假设我有一个这样的物体Swift 斯威夫特王国。我们如何重新排序结果项,swift,realm,Swift,Realm,假设我有一个这样的物体 @objcMembers class MyClass: Object { dynamic var id: Int = 0 dynamic var title: String = "" } let realm = try! Realm() let myClass = realm.objects(MyClass.self) 我已经在MyClass中插入了项,并像这样获取 @objcMembers class MyClass: Objec
@objcMembers class MyClass: Object {
dynamic var id: Int = 0
dynamic var title: String = ""
}
let realm = try! Realm()
let myClass = realm.objects(MyClass.self)
我已经在MyClass中插入了项,并像这样获取
@objcMembers class MyClass: Object {
dynamic var id: Int = 0
dynamic var title: String = ""
}
let realm = try! Realm()
let myClass = realm.objects(MyClass.self)
如何对myClass中的项目重新排序。或者,如果MyClass中有10行,如何更改行顺序、交换、移动或交换。这个答案最重要的部分是: 领域结果对象没有保证的顺序。这意味着,如果加载10个对象10次,它们可能有10个不同的顺序。 您需要向对象添加用于排序的属性
@objcMembers class MyClass: Object {
dynamic var _id: Int = 0
dynamic var title: String = ""
dynamic var score = 0 //used for ordering
}
然后按分数顺序加载结果(本例中分数越低越好)
支持您有三个MyClass对象,其名称属性为Frank,分数为3,Henry为10,Bruce为20
你运行上面的程序来得到这些人,他们将按分数排序
Frank (score = 3)
Henry (score = 10)
Bruce (score = 20)
假设布鲁斯再次上场并得了7分。更新领域中Bruce的分数,结果将以排名第二的Bruce对象更新
Frank (score = 3)
Bruce (score = 7)
Henry (score = 10)
因此,如果要更改排序,请更新排序依据的任何属性,结果将反映新的顺序。为清楚起见,请使用
results。objects
不返回对象类。因此,在这个中,让myClass=realm.objects(myClass.self)
命名不准确。它返回一个Results对象,因此这更准确让realmResults=realm.objects(MyClass.self)
查看API了解更多信息。谢谢@Jay。订购解决了我的问题。很有帮助