2010-10-05 78 views
0

我正在開發iPhone應用程序,其中一部分處理貨幣和每日匯率列表。我正在使用SQLite來存儲所有這些費率。什麼是更新iPhone應用程序數據的最佳方式?

現在我來到我想用新匯率進行數據庫更新的部分。

的第一個想法是建立到服務器的請求與特定的日期和回讀包含類似的XML:

<date value="2010-10-04"> 
    <currency name="EUR" rate="xxx" /> 
    <currency name="USD" rate="yyy" /> 
    <currency name="GBP" rate="zzz" /> 
........ 
</date> 
<date value="2010-10-05"> 
    <currency name="EUR" rate="xxx" /> 
    <currency name="USD" rate="yyy" /> 
    <currency name="GBP" rate="zzz" /> 
........ 
</date> 

但現在我在想是不是更好,使我自己的格式,類似於:

#|2010-10-04#EURxxx#USDyyy#GBPzzz#|2010-10-05#EURxxx#USDyyy#GBPzzz## 

分隔符將爲#。已知日期總是需要11個字符並以|開頭和貨幣代碼需要3個字符,我可以搜索的速度,直到我會找到一個#號。

因爲我想爲我,我可以認爲這第二種方法會比平常XML更好,即使我減少XML來發送儘可能少的數據:

<d v="2010-10-04"> 
    <c name="EUR" r="xxx" /> 
    <c name="USD" r="yyy" /> 
    <c name="GBP" r="zzz" /> 
........ 
</d> 
<d v="2010-10-05"> 
    <c name="EUR" r="xxx" /> 
    <c name="USD" r="yyy" /> 
    <c name="GBP" r="zzz" /> 
........ 
</d> 

什麼是你的親&利弊進行這個?

回答

2

的優點:

  • 正如你已經指出,這是變短,快檢索。如果你開發的服務器端和移動端的其他開發人員,那麼他可能會感到困惑時,有沒有意義

    • 更快的解析以及

    的利弊

  • 當你擁有越來越多的屬性時,如果你刪除或者改變了一些屬性,就不得不通過所有的代碼去改變它。

+0

我正在開發移動和服務器端。此外,我可能每次都沒有確切的屬性,這就是爲什麼我會根據#號解析和查找費率,而不是固定位置所必需的。 – CristiC 2010-10-05 13:32:33

3

XML更易於閱讀和分析。除非你每天提取數十億貨幣和每日利率,否則字節數不應該成爲問題。

+0

我已經做了一些測試,並使用XML生成的數據爲1天830b和使用其他格式,它只有310b。如果用戶在很多天後進行更新,發送的數據將少三倍,而且我認爲這是一個重要的手機。感謝您的答覆。 – CristiC 2010-10-06 14:58:47

+0

在邊緣,這仍然是無關緊要的,因爲它們都可以在一個包中交付。最後,你有你的答案。這裏沒有對或錯,只是選擇。 – Jordan 2010-10-06 17:36:24

3

JSON格式將拆分專有格式和標準格式之間的區別。它比XML少一些冗長,並且具有vodkhang正確期望的靈活性和可維護性。

+0

+1 JSON確實很輕 – 2010-10-05 14:48:14

2

如果您使用PHP作爲服務器端語言,CFPropertyList非常好。 易於與您的服務器代碼集成,並已在iOS中支持(例如,可以從plist文件直接創建NSDictionary)。

鏈接:http://code.google.com/p/cfpropertylist/

相關問題