2011-09-16 40 views
0

我目前正在构建一个使用Core Data和sqlite数据库的iPhone应用程序,用户将在整个应用程序中从数据库读取静态信息。我有一个问题,我们可能会更新数据库中的信息,但不想完全更新应用程序,只是数据库。有人可以帮助我一个简单的功能或教程如何去一个网站或服务器,并下载文件,将取代我们已经放入应用程序的数据库?我是新的xcode和我正在做我的第一个应用程序....感谢您的帮助从Web服务器更新Sqlite?

回答

0

我假设你想在本地静态数据,所以你不需要一个恒定的互联网连接为您的应用程序工作。另一个选择是从网络请求静态数据并将其保存在文件中(NSUserDefaults等)。但是,这取决于静态数据的复杂程度以及是否需要查询该数据。如果您需要对该静态数据发出查询,则数据库绝对会更好。

你也可以做一个组合,你可以在你的应用程序工作时下载更新的数据库(如果可用的话)。您可以在用户默认设置中设置当前静态数据数据库。如果更新,则切换当前设置并在锁定下重新建立数据库连接。

以下是如何使用iOS创建http请求的方法。

rest web services in iphone

如果您正在下载DB数据,不NSData的转换为字符串,这样的样品中......

此外,ASI-HTTP请求是受欢迎的。下面是关于如何下载一个文件样本:

http://allseeing-i.com/ASIHTTPRequest/How-to-use

http://www.cocoadev.com/index.pl?NSUserDefaults

+0

真的是本地静态数据我不需要一个恒定的互联网连接的应用程序工作。我想每隔一段时间更新一次sqlite文件或一个Web服务器托管的XML。 感谢您的帮助! –

1

我认为什么是一个好主意是你的网站发布的数据必须存储在sqllite通过REST ,可能采用JSON或XML格式。

这个blog post描述你如何才能做到这一点。我必须说,它从web服务中检索内容的方法是低级的,但它可以完成工作。也许RestKit可以帮助你照顾所有的低级联网/ http的东西。

+0

我猜他们想,因为他们在本地存储启用脱机。总是在静止状态下检索静态数据需要不断的连接。所以如果他们本地存储,可能是一个数据库。另一种选择是从REST请求并存储在文件etc ... bt中,这取决于静态数据的复杂程度。 – bryanmac

+0

嗯,是的,它会以这样一种方式实现,即sqllite db每隔x个时间段才会刷新一次。这是一个不同的问题,或至少在问题中不明显 –

+0

真的是本地静态数据我不需要一个恒定的互联网连接的应用程序工作。我想每隔一段时间更新一次sqlite文件或一个Web服务器托管的XML。 感谢您的帮助! –