所以我在Swift 3中构建了一个聊天应用程序,最近遇到的问题是我希望我的用户能够滚动浏览所有消息,而不必等待获取消息(不会被中断)。
为了实现这一点,我尝试将用于获取以前消息的方法设置为尽可能高的数字。现在我认为必须有一个更聪明的解决方案,因为一个常数将是愚蠢的。
func configureComponents() {
let coreData = CoreDataStack.shared
UserDefaults.standard.set(userName, forKey: "user")
if coreData.fetch(user: userName) == nil {
coreData.save(user: userName)
}
let messages = coreData.fetch(amount: 1000000, from: user)
fillMessages(messages: messages)
}
func loadEarlierMessages() {
let messages = coreData.fetch(amount: 1000, from: user)
guard messages.count > 0 else {
return
}
self.insertAtStart(messages: messages)
var indexPaths = [IndexPath]()
var index = 0
for _ in 0...messages.count-1 {
indexPaths.append(IndexPath(row: index, section: 0))
index += 1
}
DispatchQueue.main.async {
self.collectionView.performBatchUpdates({
self.collectionView.insertItems(at: indexPaths)
}, completion: nil)
}
}
这是我写的代码。
现在的问题是:您是否知道另一种方法来获取所有消息而不仅仅是我现在提取的1000个消息?
提前致谢!