gpt4 book ai didi

ios - iOS 10 中 Core Data API 使用最佳模式

转载 作者:行者123 更新时间:2023-12-02 02:13:22 24 4
gpt4 key购买 nike

我上次在寻找一些与 iOS 10 中的核心数据相关的书籍,特别是涵盖查询生成、NSPercientContainer、如何使用新的并发模型在新 API 中设置我的上下文层次结构等主题。

我读到现在每个上下文都应该将其父级设置为nil,最好的方法是将每个上下文直接连接到持久故事协调器。如果我们的目标是在应用程序中实现响应式 UI,则无需在上下文之间设置父/子关系。我有以下问题:

  1. 每次需要在后台执行某些任务时,我是否需要使用 container.newBackgroundContext() 方法来创建上下文,还是应该创建一个上下文并将其存储在某处并重用它以实现更好的效果表现?我可以创建多少个上下文?背景上下文的最佳数量是多少?
  2. 我是否需要将 container.viewContext 父级设置为从 container.newBackgroundContext() 创建的某些私有(private)上下文?
  3. 创建后台任务(在非主队列上更新后台线程中的某些数据)并通知此主 viewContext 的最佳方法是什么?
  4. 通知后台上下文有关用户在 UI 的主 viewContext 中引入的模型更改的最佳方式是什么?
  5. 您知道一些涵盖 iOS 10 中的架构和并发变化等主题的书籍吗?

最佳答案

  1. 您通常不需要这样做。为特定任务创建后台上下文,然后将其拆除。或者,NSPercientContainer 有一个方法 performBackgroundTask():只需向该方法传递一个 block ,它就会为您创建一个新的私有(private)上下文来运行该 block 。
  2. 不。 NSPercientContainer 会为您处理这个问题。
  3. 如果您观察 viewContext 的更改,那么只要您在任何后台队列中进行保存,此更改就会渗透出去。或者,使用 NSFetchResultsController,它有很多委托(delegate)方法可以帮助您响应更改。
  4. 您不需要这样做。只需在专用队列中执行您需要的操作,您的合并策略将决定冲突时会发生什么。
  5. 不幸的是,这些变化仍然相对较新。阅读 NSPersistentContainer 的文档以及 What's New in Core Data页。

关于ios - iOS 10 中 Core Data API 使用最佳模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41242108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com