何时以及如何将多少数据加载到模型对象中?

时间:2011-06-22 02:49:15

标签: iphone objective-c model-view-controller

我从Web开发范例来到iPhone编程,并且在理解如何设计我的iPhone应用程序时遇到了一些问题。

我的问题的关键在于:您在模型中加载了多少数据,何时使用数据库中的数据加载数据?

在我创建的Web应用程序中,服务器端的对象由基于每个请求提供的表单值的数据库填充。以一个简单的列表为例。单击列表值,列表的id发送到服务器(查询字符串),服务器只加载该列表项的对象,服务器端代码使用该对象,然后在页面返回之前销毁它用户。

使用iPhone应用程序(或者我猜任何对象持久存在的应用程序),您可以在用户与之交互之前将所有列表项对象从数据库加载到单例字典中。然后,当用户单击链接时,您永远不必返回数据库。你只需从字典中加载对象。

或者,您可以将其设计为Web应用程序,每次只需返回数据库并使用所请求的数据填充对象。

您能否就何时使用另一种方式向我提供任何指导?我什么时候加载数据?我很想在应用程序启动时加载一堆数据,这样我就不必再回到数据库了。但这感觉很脏。

1 个答案:

答案 0 :(得分:1)

  • 对于不太大的静态数据,在启动时加载所有数据。
  • 在我们的一个产品中,为了简单起见,我们在其中一个表上执行此操作(我们预计不会超过几千行)并且懒惰地加载另一个表(高分辨率图像)。如果您没有后台线程也访问数据库,这是一个合理的选择。
  • 核心数据执行批量延迟加载(即它将一次加载一批结果行)。

旁注:使用Core Data和SQLite存储的写入看起来异常缓慢,以至于我们将处理移至后台线程以避免阻止UI(这对于不太多的数据而言所有)并因此获得了一些烦人的并发问题。叹息。