2012-01-31 45 views
0

我想知道的優缺點,使用不同的數據集plist,sqlite3,xml?

我有使用以下所有三個數據集的工作代碼。

  • 一個拉一個.xml文件從我的服務器
  • 一個從應用程序的包內訪問SQLite3的數據庫的副本(這是一個副本,以便我可以添加到它,從它刪除,並保存更改
  • One從.plist訪問數據。

我的問題是,現在我有一些經驗創建這些數據集,並在應用中展示他們的數據,爲什麼/時,我會用一個比其他?

+0

有幾個很好的答案在這裏找到: http://stackoverflow.com/questions/5785011/iphone-different-ways-to-store-data-advantages-and-disadvantages – 2012-01-31 18:13:26

回答

1

XML文件,關閉服務器:

優點:您可以在任何時間提供新的數據給用戶更新XML文件,好發到其他平臺

缺點:需要一個網絡連接,必須將XML解析爲Obj-C對象,沒有辦法修改XML文件中的一個值而不重寫整個文件,XML文件需要額外的元數據來解析爲適當的Obj-C類型

sqlite文件包內:

優點:適用於大型數據集;您可以執行查詢,排序和讀取部分數據;您可以一次重寫或添加一行;好發到其他平臺

缺點:不得不sqlite的數據轉換成對象 - 對象(我喜歡這個FMDB),更新您需要將您的應用程序提交給蘋果公司的數據,並覈准

的plist:

優點:適合短小的數據集,易於閱讀的plist成一個OBJ-C容器

缺點:壞的大型數據集(超過1000個左右的項目),沒辦法只更新價值而不重寫整個文件,難以發送到其他平臺,必須提交您的應用程序蘋果和具有核準

注:

你也可以把一個文件(任何格式),您的包內,並檢查服務器是否有新的版本。

+0

感謝您的見解。關於你的筆記,你知道有人寫過關於這種方法的任何地方嗎?它令我感興趣。 – 2012-02-19 04:45:07

+0

我沒有具體瞭解任何有關這種方法的文章,但我相信這很常見。前一段時間,我們通過將版本號傳遞給Web服務器來在內部使用它,並且如果存在更新版本,服務器上的cgi會響應url,否則返回null。HTML5通過Web服務器上的清單文件做類似的事情。見http://www.w3.org/TR/html5/offline.html – EricS 2012-02-20 04:12:25