ios - Swift:数组读写器模式和 UICollectionView 更新

标签 ios swift uicollectionview

如何使用 stackoverflow question 中提到的读取器/写入器模式适用于 UI 更新吗?如果我们对 UICollectionView 的数据源使用具有读取器/写入器模式(如该问题中提到的)的数组,那么将如何使用 Collection View 的插入/删除/重新加载方法调用?简而言之,我想知道 UI 部分如何适合这样的读写器模式代码?

最佳答案

UI 上的任何内容都必须在主线程上运行,并且对象数组不是线程安全的。因此,如果您想从主线程以外的线程编辑数据,并为 UI(从主线程)读取数据,您可能会遇到意想不到的问题。链接中的读取器/写入器模式通过确保写入只能一个接一个地发生(同步)来确保线程安全。然后,您可以从后台线程编辑数据源并安全地更新主线程上的 uicollectionview,而不会导致应用程序偶尔崩溃。

但是,如果您的数据源包含核心数据对象,则您必须从在主线程上运行的托管对象上下文中获取对象。如果您使用在后台线程上运行的托管对象上下文编辑数据,则必须将更改推回父上下文,然后使用在主线程上运行的 moc 读取它,然后再使用数据更新 Collection View 。在这种情况下,读取器/写入器模式对您没有帮助。

关于ios - Swift:数组读写器模式和 UICollectionView 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38645046/

相关文章:

ios - 正在分配 UITableViewCell 但未显示

ios - 使用 Swift/SKScene 检测触摸

ios - 如何在 Firestore 中构建搜索列表?

ios - UICollectionView 的哪个页面是可见的?

swift - UICollectionView 和解析图像(Swift)没有错误但崩溃

ios - 在 Swift 中使用实时滤镜录制视频

ios - Xcode 环境变量在存档期间不存在

iOS : How to override the button action of UIWebView and call our own Objective C method

swift - 如何设置 MPRemoteCommandEvent 的播放时间?

swift - uicollectionview 中的 uiwebview 出现白色空白屏幕