簡體   English   中英

編寫混合iPhone應用程序的最佳方法是什么?

[英]What is the best way to write a hybrid iPhone app?

我正在開發一個iPhone應用程序,它將從服務器訪問XML文件(或類似內容)。 我想將這些數據轉換為iPhone上的漂亮本機UI。 以我目前的知識,我已經可以通過加載文件,解析它們,編寫自定義代碼來填充數據結構並將數據轉換為用戶界面元素來做到這一點。 但是,由於我知道這是iPhone開發中的常見問題,因此我傾向於認為有一種更簡單的方法可以抽象出某些過程。

在不重新發明輪子的情況下編寫混合應用程序的最佳和最合適的方法是什么?

有一些現成的抽象,但是其中大多數集中在XMLRPC上,這往往有些笨拙。

最好的選擇是編寫一個NSXMLParserDelegate ,這很簡單。 然后只需使用-initWithContentsOfURL:創建您的解析器。 使用這種方法,加載XML文件並解析它們成為一個步驟。 然后您就可以創建數據結構。 到UI元素的轉換是通過通常的抽象機制(數據源和委托)進行的。

這使您擺脫了外部強加的XML模式的約束,但可以斷定您的XML文件相對較輕,或者可能存在(大量)接口滯后。 明智的做法是將XML加載到單獨的線程上,然后在有更多數據可用時( 不太經常)重新加載接口(尤其是如果每個文件都包含多個KiB時)。

編輯:一些注意事項:總的來說,如果您要做的事情甚至很復雜,都希望避免使用UIWebView。 它不像本機控件那樣快,結果應用程序的外觀通常也差一點。

另外,在我看來,您想要的是或多或少是XML-file => UITableView類型的應用程序,或者至少是概念上相似的東西。 真的很容易構建; 最棘手的部分是找出一種XML格式,其中包含您想要的信息而不會without腫。 實際上,我建議您從這里開始。 只是一個XML使用者和一個導航控制器; 以它為起點,應該讓您檢查結構是否合理,文件是否太大。 使用UIWebView帶來了另一個問題:

您無法控制緩存,尤其是當您使用JS處理或獲取文件時。 對於大多數Web瀏覽而言,這很好,WebKit 通常會做正確的事情,尤其是在面對合理的Web服務器配置時(不是實際的配置,而是實際的配置結果:合理的標頭)。

當您使用定制的解析器和緩存系統時,您將獲得更大程度的控制,並且可以使用許多技巧來確保下載的文件絕不超出嚴格意義上的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM