Представление коллекции executeBatchUpdates аварийно завершает работу в Swift - PullRequest
0 голосов
/ 25 февраля 2019

Я делаю заявку в чате.для чата Ui я использовал контроллер jsqmessageview.когда мы загружаем предыдущие сообщения, выдают следующую ошибку: - [JSQMessagesCollectionView _endItemAnimationsWithInvalidationContext: примерноForReordering: animator:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIK.10-3698m: 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

}

, так что у кого-нибудь есть решение для этого случайного сбоя, тогда, пожалуйста, помогите мне или у вас есть идеи, связанные с загрузкой предыдущего сообщения, используя представление коллекции, а затем, пожалуйста, помогите мне.

спасибо.

...