如何获取某个Realm对象在Results中的索引?

dic*_*kyj 4 realm uitableview ios swift

这是一个例子。

    class Person: Object {
      dynamic var id
      dynamic var name     
    }

    // does this work?
    let sortedPeople = realm.objects(Person).sorted("id")
    let Dave = realm.objects(Person).filter("id=5")

    // at what index does Dave reside in sortedPeople?
Run Code Online (Sandbox Code Playgroud)

我需要了解这一点的原因是因为我有一个设置为sortedPeople 的UITableView,但我需要存储查看的最后一个可见行。SortedPeople 数组经常变化。因此,如果我可以在 SortedPeople 中找到该人所在位置的索引,我可以创建一个 NSIndexPath 并滚动到该行。

Hit*_*nki 5

您可以使用indexOf:方法来查找特定对象的索引,

尝试这个

let sortedPeople = realm.objects(Person).sorted("id")
let Dave = realm.objects(Person).filter("id=5")

//this will return optional Int?
let indexOfDave = sortedPeople.indexOf(Dave)
Run Code Online (Sandbox Code Playgroud)

2023年编辑:现在是

let indexOfDave = sortedPeople.index(of: Dave)
Run Code Online (Sandbox Code Playgroud)