我有一个Web套接字,可以向MutableProperty<[Stuff]>
添加或删除数据
但是当我用collectionView
重新加载collectionView.reloadData()
时。
Web套接字将数据添加到MutableProperty<[Stuff]>
或从中删除数据,因此它将崩溃
由于多种原因,这里有一些错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of sections. The number of sections contained in the collection view after the update (58) must be equal to the number of sections contained in the collection view before the update (59), plus or minus the number of sections inserted or deleted (0 inserted, 0 deleted).'
有人对此有好的建议或最佳做法吗? 我已经看到MutableProperty是线程安全的
我知道为什么会崩溃。它崩溃是因为websocket在reloadData
的{{1}}期间从数组中添加或删除了数组中的值,但我不知道如何解决。
我知道我们可以使用信号量,但我正在寻找优雅的东西
答案 0 :(得分:0)
您应该向我们展示更多代码,以便我们更好地理解。
但是,如果您在委托:numberOfSections
和numberOfRowsInSection
中返回固定值,则需要在调用collectionView.reloadData()
之前对其进行更新,以便这两个委托在每个委托中返回节和项的确切数目。部分。