2010-05-29 31 views
2

我有一些數據我想添加到我的應用程序中...約650個類別(包括名稱+身份證號碼),每個平均85個項目(每個都有一個名稱/身份證號碼)。iPhone長plist

iPhone會支持這麼大的plist嗎?我想首先在UITableView中顯示類別,當選擇一個類別時,我想顯示所有關聯的項目。有這麼大的plist,我不知道如果iPhone加載項目時會滯後。在超過51,000行看來,它可能會......

編輯:原始文本文件是2MB

回答

4

plist可以是任意長度。但擁有2 MB文本數據的plist是一個非常糟糕的主意。即使在桌面上,蘋果只建議的Plist有幾百KB的最大尺寸:

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/propertylists/AboutPropertyLists/AboutPropertyLists.html#//apple_ref/doc/uid/10000048i-CH3-54402

原因是Plist檔案必須完全反序列化到內存中,然後才能從plist中訪問單個元素。這對於小型plists來說很方便,但是對於大型plists來說,在空間和時間上非常低效。

您應該將您的數據加載到數據庫中。如果你做得很好,一個數據庫只會引入你需要的數據集的一部分,而不是整個數據集。

1

我懷疑這可能會需要一段時間來加載你的plist中,特別是如果你使用的是基於XML的plist。二元plist可能會更快。您可能需要考慮使用CoreData或原始的sqlite數據庫來存儲您的數據。

唯一確定的方法就是試試看。沒有什麼比實際的表演時間更好。

0

這似乎更適合預加載數據庫。它應該有點小一點......

該技術是,編寫代碼讀取plist並將其放入SQLlite或CoreData中。然後將數據庫從模擬器目錄中取出,並將其添加到您的應用程序 - 在應用程序啓動時,從您在項目中擁有的文件中讀取數據庫。

如果您需要修改數據,請將其預加載,但首次將數據庫複製到第一次啓動時的可寫目錄(或基本上在任何時候不存在)。