我正在查询'Chat‘类,以便从Parse获取消息。然后使用JSQMessagesViewController显示获取的消息。
所有操作都很好,直到我尝试使用以下方法缓存查询:
query.cachePolicy = .CacheThenNetwork问题是结果没有被缓存,query.hasCachedResult总是返回false。
查询如下:
let query = PFQuery(className: PF_CHAT_CLASS_NAME)
query.whereKey(PF_CHAT_GROUPID, equalTo: forGroupId)
query.whereKey(PF_CHAT_DELIVERTIME, lessThan: NSDate())
query.includeKey(PF_CHAT_USER)
query.orderByDescending(PF_CHAT_DELIVERTIME)
query.limit = 50
query.cachePolicy = .CacheThenNetwork
if query.hasCachedResult{
print("yes")
}
else{
print("no")
}
query.findObjectsInBackgroundWithBlock(completionBlock)在这里完成了提取和JSQMessagesViewController比特:
ParseWrapper.getChatAvailable(forGroupId: groupId){
(objects, error) -> Void in
if error == nil {
self.messages.removeAll()
self.users.removeAll()
for object in (objects as [PFObject]!).reverse() {
self.addMessage(object)
}
if objects!.count > 0 {
self.tableViewScrollToBottom(true)
}
self.tableView.reloadData()
self.refreshControl.endRefreshing()
}
}有人知道这是怎么回事吗?.CacheThenNetwork可以很好地处理其他查询。
发布于 2016-03-04 17:44:41
因此,我发现了这个问题,这是一个带有日期参数的行:
query.whereKey(PF_CHAT_DELIVERTIME, lessThan: NSDate())更多细节请看这个答案..。https://stackoverflow.com/a/30683459/1250367
https://stackoverflow.com/questions/35799345
复制相似问题