2013-05-16 69 views
0

我的應用程序基於我從XML獲得的數據。 我實現了NSXMLParser,它工作得非常好。唯一的(主要)問題,就是 應用程序的啓動大約需要25秒! (解析器需要解析30個對象,每個對象都有5-7個元素 - 都是url的/字符串)。 因此,開始/結束元素需要很長時間,解析它,將它插入到正確的數組中,依此類推...IOS - 由於XML解析而導致的長時間應用程序啓動

使用Gdata或其他api/object解析是否需要更少的時間?

+0

好,少指約1/3以下:) – AndroAid

+0

有多少字節?解析文本速度很快,這很可能是從網絡上下載的速度很慢。 –

+0

如果你的意思是xml文件的大小,它的4kb。 – AndroAid

回答

0

解析後臺線程將使您的應用更具響應能力。

+0

我曾考慮過它,但應用程序需要啓動數據 - 沒有它,沒有觀點可以展示。據我所知,如果沒有必要同時發生,爲什麼要運行一個線程。我對嗎? – AndroAid

+0

您是否考慮過使用一些初始數據預加載應用程序?您可以顯示該數據(即使它已過時),並在向用戶顯示某些視圖後獲取新數據。 – Jeepston

1

在啓動應用程序時,從主線程下載Internet數據非常糟糕。如果用戶連接速度很慢(或沒有連接),iOS會在完成之前殺死應用程序,因爲它的響應時間太長。

您必須非常快速地啓動您的應用程序,並毫不拖延地向用戶顯示初始視圖。

在你的情況,顯示一個大多爲空的視圖,表明它正在訪問數據。然後在後臺啓動文件下載和處理。處理數據時,更新主線程上的主視圖以允許用戶繼續。

您還應該考慮爲應用程序提供一些初始默認數據,這樣即使用戶無法連接到Internet,您的應用程序也是可用且有用的。此默認數據也可以是上次使用該應用程序時下載的任何內容。

+0

這是要走的路。還考慮添加som進度條(例如0%到100%)到下載/解析。這樣用戶不得不一直到完成,而不僅僅是一個活動指示器。 – Groot

+0

非常感謝您的回覆。我不知道該怎麼做,但我會盡力找到一些有關它的東西。如果你們有任何鏈接或什麼,我會非常感謝。 – AndroAid

相關問題