В моем текущем проекте я объединил NSFetchedResultsController
с UICollectionView
, который отлично работает. В настоящее время я пытаюсь обновить проект до Swift 3 и Xcode 8, которая вызывает следующее сообщение об ошибкеUICollectionView + NSFetchedResultsController in Swift 3
This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread.
Я использую BlockOperation
массив в очередь изменения в UICollectionView
. Вот пример того, как я вставляю новый элемент.
self.blockOperations.append(BlockOperation(block: {
collectionView?.insertItems(at: [newIndexPath!])
}))
Это моя текущая реализация controllerDidChangeContent
var blockOperations = [BlockOperation]()
func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
if self.shouldReloadCollectionView {
self.collectionView.reloadData()
}
self.collectionView?.performBatchUpdates({
for operation in self.blockOperations {
OperationQueue.current?.addOperation(operation)
}
}, completion: { (completed) in
print(completed)
})
}
Кто-нибудь реализован NSFetchedResultsController
с UICollectionView
в Swift 3 может помочь мне с этим?
эй, может быть, помогу? - https://gist.github.com/nazywamsiepawel/e88790a1af1935ff5791c9fe2ea19675 –