我期待爲iOS創建基於導航的參考應用程序。在iOS上存儲不可變數據的最佳做法
我曾考慮通過以下方式來存儲數據:
硬編碼
plist文件
某種逗號分隔的文件
的數據結構,我將使用有一串字符串,一個數組和一個圖片的引用。
您認爲存儲這些數據的最佳方式是不進入CoreData?
謝謝
另外我不認爲這將超過500條目。
我期待爲iOS創建基於導航的參考應用程序。在iOS上存儲不可變數據的最佳做法
我曾考慮通過以下方式來存儲數據:
硬編碼
plist文件
某種逗號分隔的文件
的數據結構,我將使用有一串字符串,一個數組和一個圖片的引用。
您認爲存儲這些數據的最佳方式是不進入CoreData?
謝謝
另外我不認爲這將超過500條目。
那麼,這不是任何情況下的「最佳實踐」問題。
我將使用的數據結構有一堆字符串,一個數組和一個圖片的引用。
您認爲存儲這些數據的最佳方式是不進入CoreData?
爲了您的需要,我建議你看看NSKeyedArchiver
。
NSString
,NSArray
和UIImage
都知道如何編碼和解碼自己。只需使用NSKeyedArchiver
。請注意,集合中的對象(例如NSArray
)必須採用@protocol NSCoding
。
如果需要在Mac上打開此項,請使用適當的圖像文件格式表示(例如,PNG或JPEG)將UIImage
轉換爲NSData
,因爲UIImage
不可用。
詳細:
硬編碼
這可能意味着一些事情。
plist文件
你跟大非的plist類型的工作。這意味着你需要不必要的轉換和從UIImage
< - >NSData
,這會增加很多開銷 - 內存,CPU和潛在的文件大小。所有這些類型都可以比自己的表現更好(或一樣好)。
某種逗號分隔的文件
圖像將不會允許這樣的事情發生(可靠)。
當我說硬編碼時,我的意思是有一個可笑的長方法,可以創建我需要的所有數據對象,將它們添加到一個數組,並從該數組讀取UITableView。回顧一下,這可能是一個糟糕的主意。可能只是測試的好處。 – 2012-02-16 06:11:26
但是我想對這些數據對象執行搜索。我看到CoreData提供了索引。這個視頻是一個很好的教程,可以找到應用程序將使用的sqlite文件的位置。我期望做的事情不需要用戶添加他們自己的條目,它將全部從文件中加載,它是一個帶有收藏夾和搜索的簡單參考應用程序。沒什麼特別的。只是不想放慢電話,這就是爲什麼林尋找最有效的方式來加載數據和搜索。 – 2012-02-16 06:16:14
@M傑西啊,我明白了。這種方法相對比較脆弱 - 沒有版本支持意味着你永遠不能改變它,總是需要根據條目數來識別版本,同時在NSData中進行多次轉換。 – justin 2012-02-16 06:16:48
使用屬性列表。這是沒有核心數據的最好方式。 – Moshe 2012-02-16 03:05:43
除非CoreData有嚴格的要求,否則我強烈建議花幾個小時來學習它。它快速,簡單,並與CocoaTouch很好地整合 – MGA 2012-02-16 04:23:28
我給CoreData一個看看,除了幹蘋果文檔,你建議的任何鏈接?謝謝 – 2012-02-16 04:44:12