Iphone 需要iOS核心数据架构提示

Iphone 需要iOS核心数据架构提示,iphone,objective-c,ios,core-data,architecture,Iphone,Objective C,Ios,Core Data,Architecture,我只是想得到一些关于构建我的第一个核心数据应用程序的最佳方法的建议,以及我需要的主要对象和交互 数据是远程存储的,我需要通过HTTP访问它,它将以JSON格式响应。我想使用核心数据将其缓存在设备上。每天服务器上都会有新的数据,所以我需要访问这些数据并相应地更新模型 有没有什么SDK类可以帮助我实现这一点,或者我打算手动实现它 我想我正在看一个模型控制器,我调用它来获取数据,它将返回核心数据缓存数据,可能还会对web服务进行后台调用以获取最新数据,然后通知视图有新数据。当我从web服务获取JSON

我只是想得到一些关于构建我的第一个核心数据应用程序的最佳方法的建议,以及我需要的主要对象和交互

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

有没有什么SDK类可以帮助我实现这一点,或者我打算手动实现它


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

这里有很多不同的部分。请允许我提出一些建议:

  • 对于从服务器获取数据,我将查看AsiTpRequest。这是一个很好的管理HTTP请求的解决方案(无论您使用的是JSON、XML还是其他..)
  • 对于JSON翻译,我将研究SBJSON。该网站有关于如何开始的文档:
  • 对于您的总体架构,我将实现一个封装服务调用的委托模式。在这个委托中,您将处理JSON数据到实际Objective-C类的转换,然后再将数据传递给应用程序的其余部分
  • 一旦数据被解析并放入Objective-C对象(我希望这些对象是与数据模型目录相关的NSManagedObject的子类),我将执行保存
  • 然后,我将使用NSNotification通知所需的视图数据已更改

  • 感谢dtuckernet,以下是我所做的事情——从许多来源收集信息,我相信这是最好的解决方案。任何人都可以自由地(建设性地)批评

  • 我在CoreDataStack.h(singleton)中有我的核心数据堆栈——这不是完全必要的,但它整理了我的应用程序委托类
  • 我有一个基本CoreDataBackedTableViewController:UITableViewController
  • 我的每个表视图屏幕都扩展了CoreDataBackedTableViewController,并具有ModelController类的ivar
  • 示例ModelController类有一个-(NSFetchedResultsController*)getData方法,该方法构造NSFetchedResultsController(还保留对它的引用),并将其返回给视图控制器,该视图控制器还将其存储在CoreDataBackedTableViewController中(它侦听数据的更新和编辑)。拥有ModelController类允许我封装数据访问,以便可能有两个不同的视图控制器使用它(可能是iPhone和iPad)
  • 在getData中,我异步调用后端Web服务。使用委托进行回调
  • 后端使用SBJSON进行解析和NSHttpConnection,并使用一个手动的HttpService类
  • 当后端返回数据时,它调用更新核心数据的ModelController上的委托-我的fetchedResultsController知道这一点并自动更新我的接口!这一点有多酷——我没有付出太多的努力。我必须对我之前是否下载过数据进行一些检测,以避免重复
  • 准备将此应用程序发布到我的应用程序的其余部分

  • 如果有人想对任何步骤进行澄清,请告诉我。

    您绝对希望使用。这是从RESTful web服务到核心数据的直接连接。使用Xcode的内置工具定义数据模型,使用RESTKit为web服务定义映射层,并让库完成繁重的工作。太棒了。

    谢谢。除了NSNotification之外,我已经使用了很多这些要点来通知视图数据已经更改。我使用了NSFetchedResultsController,它可以为我做这件事——还有更多。