【问题标题】:Swift Realm LimitationSwift 领域限制
【发布时间】:2018-01-28 12:44:56
【问题描述】:

我需要在集合视图中进行分页,所以我想限制来自领域数据库的结果这是我的负载数据代码

var messageIndex: Results<MessageRealm>?

func loadMessage() {
    let realm = try! Realm()
    if let userTitleName = user?.fromId {
    let mssagesRealm = realm.objects(UsersRealm.self).filter("sender = %@", userTitleName)
    for sub in mssagesRealm {
        messageIndex = sub.msgs.sorted(byKeyPath: "timeStamp")
        }
    }
}

我找到了这个解决方案,但不适合我

let dogs = try! Realm().objects(Dog.self)
for i in 0..<5 {
    let dog = dogs[i]
}

任何建议

【问题讨论】:

  • 所以你只想从messagesRealm检索一定数量的元素?你是什​​么意思,第二个例子不起作用?请具体。
  • 是的,我想从 messageRealm 中检索某些数字,而消息领域是 userRealm 的列表...
  • 对于第二个示例,它给了我 MessageRealm 的类型,但我需要 Results? ...

标签: swift pagination realm realm-mobile-platform realm-list


【解决方案1】:

你应该在你的 MessageRealm 类中再添加一个变量(myIndex)

@objc dynamic var myIndex : Int = 0

在 MessageRealm 中插入记录时,您应该增加 +1 或 index.advanced(by: 1)。

在面对记录时,您只需传递 1 到 100 或 101 到 200 之类的范围

开始索引 = 101 endIndex = 200

let arrData = realm.objects(MessageRealm.self).filter(){$0. myIndex >= startIndex && $0. myIndex <= endIndex }

就是这样,您只需在 MessageRealm 中插入记录时添加增加 myIndex 的逻辑,并将 startIndexendIndex 的逻辑作为您对项目的要求。

【讨论】: