我認爲我的iPhone應用程序出現了一些性能問題。加載,保存和重新加載數據的最佳方式
我喜歡向您展示如何從互聯網加載數據,將它們存儲在電話上並重新加載它們以在表格視圖上打印出來。 我在應用程序上有幾個模塊,所以我希望它是好的,如果我解釋我用來做的一般方式,也許你們中的一個人有了一個想法。
數據量約爲250個數據集,包含10-20個數據字段(整數/文本)。
步驟1:由URL請求獲得一個JSON數據串
我將一個URL請求與一些限制值(例如city_id和LAST_UPDATE_TIME)開始一個的MySQL數據庫的請求限制結果。
第2步:將JSON對象保存到iPhone上的SQLite3數據庫。
我會這樣做,因爲我喜歡在離線模式下使用數據。 這部分應該是重量級的一部分,因爲它佔總時間的3/4。 我運行了這些對象,並檢查是否之前保存過這個對象。 (這裏我使用import_id來標識MySQL數據庫對象) 如果我確實找到了它,我會更新這個數據集,否則我會插入它。
步驟3:從SQLite的重新加載數據,放入一個NSMutableArray
此Array將由TableView中使用。
注意:數據將在主線程中加載。其他線程將用於延遲加載一些拇指或顯示一個旋轉輪。
程序中是否存在大錯誤?我應該在另一個線程中加載數據,但是此時應該在視圖中顯示什麼內容?
什麼是最好的方法?
你的想法看起來不錯;不過,我會在後臺加載和填充數據庫,並可能向用戶顯示一個活動指示器。 – Jeremy
基本上沒問題,儘管弄明白如何使用一個「懶惰」的數組方案可能是明智的,該方案僅在被引用時才從數據庫加載單個元素(有點類似於TableViews管理行)。有幾種方法可以解決這個問題。 (請注意,在啓動過程中加載整個陣列會產生「糟糕的用戶體驗」,並可能導致應用程序被迫中止。) –
@Jeremy我實現了一個「Spinning Wheel」來顯示用戶,數據將被加載 –