如何在stackoverflow question中提到的读写器模式可用于UI更新?如果我们为UICollectionView的数据源使用带有读写器模式的数组(如该问题中提到的),那么集合视图的insert/delete/reload方法调用将如何使用?简而言之,我想知道UI部分如何适合这种读写器模式代码?Swift:Array读写器模式和UICollectionView更新
0
A
回答
0
UI上的任何内容都必须在主线程上运行,并且对象数组不是线程安全的。因此,如果您想要编辑主线程以外的线程的数据,并从UI读取(从主线程),则可能会遇到意外问题。链接中的阅读器/写入器模式通过确保写入只能一个接一个地发生(同步)来确保线程安全。然后,您可以从后台线程编辑您的数据源,并安全地更新主线程上的uicollectionview,而不会偶尔发生应用程序崩溃。
但是,如果您的数据源包含核心数据对象,则必须从在主线程上运行的托管对象上下文中获取对象。如果使用在后台线程上运行的托管对象上下文来编辑数据,则必须将更改推回到父上下文,然后使用在主线程上运行的moc读取它,然后使用数据更新您的集合视图。在这种情况下,读写器模式不会对您有所帮助。
相关问题
- 1. OpenDJ模式更新和数据更新
- 2. Java易失性读取刷新写入和易失性写入更新读取
- 3. UICollectionView异步更新大小
- 4. Symfony更新模型模式
- 5. 的UITableView和UICollectionView更新新的细胞发出
- 6. JavaFX和Observer模式 - 更新UI
- 7. 控制器规格处于隔离模式和渲染:更新
- 8. Umbraco不更新模型和控制器
- 9. 阅读Xml和更新
- 10. Ç的fopen模式读+写+创建
- 11. jooQ spring boot多模式(读写分割)
- 12. C++读写二进制模式
- 13. 如何用PHP XML读写器更新这个xml文件?
- 14. 抓住FastInfoset读取器和编写器
- 15. ASP.NET Core MVC(.NET Framework)写入,读取和更新Cookie
- 16. 更新嵌套UICollectionView - 斯威夫特3
- 17. 滚动时,Uicollectionview没有更新标题
- 18. 删除Realm对象后更新UICollectionView
- 19. 通过UICollectionView滚动不断更新值
- 20. HDFS单写入器多读取器模型 - 读取不一致?
- 21. 比较两个模式并使用新模式的新列更新旧模式
- 22. 重新加载UICollectionView的最佳方式
- 23. 数据库模式更新
- 24. MongoDB更新转换模式
- 25. MVC模式不更新
- 26. Bootstrap模式:event.relatedTarget(不更新)
- 27. Node.js,Express,MySQL - 更新模式
- 28. 更新数组的模式
- 29. MDM模式更新部署
- 30. GenericRepository模式更新方法