我目前正在创建一个iOS应用程序,它连接到数据库并异步下载数据的JSON对象以在表格视图中显示。
目前看来,这是一个很好的方法。但是,当数据库开始变大时,这将造成巨大的不便。我在Objective-C方面相当精通,但在数据库方面却没有那么多。从服务器获取此数据并将其保留在应用程序中的最佳方法是什么?目前,我有一个自定义类对象,用于存储每个'对象的数据。在JSON对象中。然而,数据库将处理许多其他方面的应用程序,例如邀请,登录和用户详细信息。
核心数据是否可行?即复制数据库(在某种程度上)并将其存储在本地,然后从那里进行访问。正如我所说,我不确定在这里采取哪条路线,所以任何建议都会得到真正的赞赏。
答案 0 :(得分:1)
核心位置用于处理位置(卫星(和wifi)定位)。
我猜你的意思是核心数据。核心数据是一种图形对象模型,它允许您将数据作为对象进行操作。您不直接挖掘数据库,通过谓词(SQL中的where子句的类型)和操作对象来请求对象实例化。
这说明,这完全取决于什么是“大”数据库。如果它真的很大,你可以考虑在本地复制它的一部分,并通过你的网络服务询问服务器剩余的内容。
您可以问自己的另一个问题是数据的数量永远不会改变,如果您的网站数据库和您的应用数据库需要同步(如果您的网站数据库总是在变化,那么在您的应用中复制它将是愚蠢的完全并且始终同步您的应用程序..)。
链接:
Difference between Core Data and a Database (Cocoa With Love)
编辑:
您可以问自己的问题是您的数据需要保存在哪里?
如果您的应用仅用于打印总共200个单元格中的20个单元格,那么我将完全下载您的200个单元格。首次下载后,其他单元格的负载将没有延迟,尤其是如果您使用具有可重复使用单元格的表格视图单元格
是20个第一个细胞和20个之后可接受的延迟几秒?我认为你的问题没有真正的“好”答案,这取决于很多因素(你的应用程序的目的,加载之间可接受的时间,信息是否需要修改并保存回服务器或本地,什么样的客户,您的应用程序将对单元格执行的操作,如果您在本地拥有数据库,它将完全独立于“母”数据库(如果没有,什么样的同步)等等。)
尝试根据我对你的需求的理解来总结一些东西,我会说如果你只是需要检索信息并在不保存它之后利用它(即使你可以实际拥有它),web服务也是好的允许你这样做的服务),如果你需要你的应用程序在某些方面与你的服务器无关,那么在本地拥有一个数据库是好的。
只有您有钥匙才能回答所有这些问题,并根据您的需求以及您对应用程序和客户的了解做出决定。
答案 1 :(得分:0)
像JSON或SOAP这样的东西是将Web服务中的结构化数据转换为iPhone应用程序中的对象的方法。
使用SQLite可以轻松地在iPhone上存储关系数据。 Here's a decent looking tutorial
通过编写数据层,抽象出对数据库的调用来简化自己的工作,避免在不应该存在的地方点上SQL查询,例如UI。