2011-09-16 41 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。 感謝您的幫助! –