gpt4 book ai didi

iphone - 需要 iOS 核心数据架构技巧

转载 作者:可可西里 更新时间:2023-11-01 03:28:57 26 4
gpt4 key购买 nike

我只是想获得一些有关构建我的第一个 Core Data 应用程序的最佳方法的一些建议,以及我将需要的主要对象和交互。

数据是远程存储的,我需要通过 HTTP 访问它,它会以 JSON 格式响应。我想使用核心数据将其缓存在设备上。服务器上每天都会有新数据,因此我需要访问它并相应地更新模型。

有没有我可以使用的 SDK 类来帮助我解决这个问题,还是我要手动滚动它?

我想我正在查看一个模型 Controller ,我调用它来获取数据,它将返回核心数据缓存数据,并且可能对 Web 服务进行后台调用以获取最新数据,然后通知 View 有新数据。当我从 JSON 格式的 Web 服务获取数据时 - 我需要将其映射到 ManagedObjects 并添加到我的核心数据上下文中。

最佳答案

感谢 dtuckernet,这就是我所做的 - 从许多来源收集信息,我认为这是最好的解决方案。任何人都可以随意批评(建设性地)......

  1. 我在 CoreDataStack.h 中有我的核心数据堆栈(单例)——并非完全必要,但它使我的应用程序委托(delegate)类变得整洁。
  2. 我有一个基本的 CoreDataBackedTableViewController : UITableViewController
  3. 我的每个表格 View 屏幕都扩展了 CoreDataBackedTableViewController 并有一个指向 ModelController 类的 ivar。
  4. 一个示例 ModelController 类有一个 - (NSFetchedResultsController *) getData 方法,它构造 NSFetchedResultsController(也保留对它的引用)并将它返回给 View Controller , View Controller 也将它存储在 CoreDataBackedTableViewController 中(它监听更新和编辑数据)。拥有 ModelController 类允许我封装我的数据访问,以便可能有 2 个不同的 View Controller 使用它(可能是 iPhone 和 iPad)
  5. 在 getData 中 - 我异步调用我的后端网络服务。使用委托(delegate)进行回调
  6. 后端使用 SBJSON 进行解析,并使用 NSHttpConnection 和手动滚动的 HttpService 类。
  7. 当后端返回数据时,它会调用更新核心数据的 ModelController 上的委托(delegate) - 我的 fetchedResultsController 知道这一点并自动更新我的界面!这一点有多酷——我不需要付出太多努力。我必须检测我之前是否已经下载过数据以避免重复。
  8. 准备将其推广到我的应用程序的其余部分....

如果有人想对任何步骤进行任何说明,请告诉我。

关于iphone - 需要 iOS 核心数据架构技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6898269/

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