集合视图performBatchUpdates快速随机崩溃

时间:2019-02-25 12:06:16

标签: ios swift uicollectionview jsqmessagesviewcontroller

我正在申请聊天。为了聊天Ui,我使用了jsqmessageview控制器。当我们加载先前的消息时,会出现以下错误: [JSQMessagesCollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:动画师:],/ BuildRoot / Library / Caches / com.apple.xbs / Sources / UIKit / UIKit-3698.52.10 / UICollectionView.m:5867 2019-02-25 17:25:35.553375 + 0530 Calmex [288:12648] **由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'试图将第25项插入第0节,但该节中只有25项更新后为0”

我们使用了以下代码:-

 var indexPaths: [AnyObject] = []
 var arraysizeOfCollectionview : Int = 0
 if(isloadmore)
 {
   self.collectionView.performBatchUpdates
   ({
            indexPaths.removeAll()

            let lastIdx = messages123.count - 1

            for i in 0...lastIdx
            {
                print("index path -->\(IndexPath.init(item: i, section: 0))")
                indexPaths.append(IndexPath.init(item: i, section: 0) as AnyObject)
            }
            self.collectionView.insertItems(at: indexPaths as! [IndexPath])

            self.collectionView.collectionViewLayout.invalidateLayout(with: JSQMessagesCollectionViewFlowLayoutInvalidationContext())

            arraysizeOfCollectionview = arraysizeOfCollectionview + indexPaths.count
  },
    completion: {(finished) in
  })
}
else
{
  arraysizeOfCollectionview = self.messages.count
}

我们在“ arraysizeOfCollectionview”中具有总行数,并在集合视图中返回。

  override func collectionView(_ collectionView: UICollectionView, 
  numberOfItemsInSection section: Int) -> Int
  {
    // Return the number of messages

    return arraysizeOfCollectionview

}

所以任何人都有解决此随机崩溃的方法,然后请帮助我或与任何有关使用集合视图加载上一条消息的想法有关,然后请帮助我。

谢谢。

0 个答案:

没有答案