我正在編寫一個應用程序,其中包含校園和桌面視圖中的所有建築物。當您點擊建築物時,它將檢索其中的信息,例如經度,緯度,建築物名稱及其圖像。iPhone應用程序的數據存儲
我的問題是你認爲最好的方式來存儲這些數據?我應該使用sqlite3數據庫還是核心數據? Sqlite3是我現在所傾向的東西,我對SQL有些熟悉。任何建議,將不勝感激。
我正在編寫一個應用程序,其中包含校園和桌面視圖中的所有建築物。當您點擊建築物時,它將檢索其中的信息,例如經度,緯度,建築物名稱及其圖像。iPhone應用程序的數據存儲
我的問題是你認爲最好的方式來存儲這些數據?我應該使用sqlite3數據庫還是核心數據? Sqlite3是我現在所傾向的東西,我對SQL有些熟悉。任何建議,將不勝感激。
CoreData使用SQlite。如果你正在學習,那將是你最好的選擇,因爲所有蘋果相關的東西(iphone,ipad,ipod touch和MacOS X都支持它)。
有很多關於如何使用CoreData的書籍和例子。另外,CoreData可以以更好的方式處理更新。
要使用CoreData,您不需要編寫任何SQL行。它的全部由API完成。
好的,所以我想出了一個很好的方法來使用核心數據來做到這一點。我用一個實體及其屬性創建了核心數據模型。實體及其屬性對應於一個表及其列。我運行它,它創建了一個空的sqlite文件。你可以找到這個文件:
/Users/[用戶名] /資源庫/應用程序支持/ iPhone模擬器/ 5.0 /應用/ [一些長期的十六進制數] /文件
從那裏,你可以打開並查看sqlite文件及其內容:
> sqlite3 [name of file].sqlite
> .schema
.schema顯示錶格和列。您會注意到,當Core Data創建一個sqlite數據庫時,它將調用表Z [entity]和列Z [attribute],其中entity是您實體的名稱,attribute是您的屬性的名稱。所以表格和所有屬性在它之前有一個Z.
然後,我寫了一個腳本來收集所有的信息,並將其存儲在這個數據庫中,然後我把它放回到我發現它的目錄中,它工作正常!希望這能幫助遇到同樣問題的人。
我絕對建議使用核心數據而不是SQLite,核心數據更容易使用。
UPDATE:我應該提到,我用它來初始化一個數據庫,並且在初始化後不做任何改變。
我會更強烈地說;除非您非常需要可移植到非Apple平臺*或*您真的*真的*想要學習SQL,與Core Data相比,SQLite是浪費時間。 – bbum
好的謝謝,我會更多地考慮它。我傾向於sqlite3,因爲我可以編寫一個perl腳本,將每個建築物的所有信息放在一張表中。我不確定這對於CoreData來說是否容易。我已經搞混了CoreData,它使用起來非常簡單和友好。 – ericlvb
您可以爲CoreData編寫導入例程,但通常應該在您的應用程序中執行。不建議直接訪問底層CoreData的SQlite數據庫。 – tobyc