【问题标题】:Parse JSQMessagesViewController caching issue解析 JSQMessagesViewController 缓存问题
【发布时间】:2016-06-18 09:11:07
【问题描述】:

我正在查询“聊天”类以从 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)

这里完成了 fetch 和 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 适用于其他查询。

【问题讨论】:

    标签: ios swift caching parse-platform jsqmessagesviewcontroller


    【解决方案1】:

    所以,我发现了问题,就是这个带有日期参数的行:

    query.whereKey(PF_CHAT_DELIVERTIME, lessThan: NSDate())
    

    查看此答案了解更多详情...https://stackoverflow.com/a/30683459/1250367

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      相关资源
      最近更新 更多