標籤:
一、NSUserDefault(喜好設定,Preference)
小規模資料,弱業務相關資料使用。例:某個UISwitch的狀態。
二、File(檔案儲存體)
檔案儲存體包括了Plist、archive、Stream等方式,一般結構化的資料或者需要方便查詢的資料,都會以Plist的方式去持久化。 Archive方式適合儲存平時不太經常使用但很大量的資料,或者讀取之後希望直接對象化的資料,因為Archive會將對象及其對象關係序列化,以至於 讀取資料的時候需要Decode很花時間,Decode的過程可以是解壓,也可以是對象化,這個可以根據具體
<NSCoding>中的實現來決定。Stream就是一般的檔案儲存體了,一般用來存存圖片啊啥的,適用於比較經常使用,然而資料量又不算非常大的那種。
1、plist(XML屬性列表,本質是XML) 主要儲存NSArray\NSDictionary\NSString\BOOL等等類型,(儲存自訂對象需要用
archive)。plist檔案一般存在沙箱。 沙箱下檔案夾詳解
1》Documents檔案夾 檔案夾路徑:/Users/使用者名稱/Library/ Developer/CoreSimulator/Devices/模擬器UDID/data/Documents Documents:只能儲存由應收程式產生的相關資料,不能儲存從網路下載的資料,否則會拒絕上架。因為Documents目錄中的所有內容會自動備份在iCloud中。可以儲存遊戲存檔等。
2》Library檔案夾 /Users/使用者名稱/Library/ Developer/CoreSimulator/Devices/模擬器UDID/data/Library Cache檔案夾:緩衝目錄,儲存應用運行時產生的需要持久化的資料,可以儲存從網路下載的資料,同時希望在此使用的檔案。不會備份該目錄。一般儲存體積大、不需要備份的非重要資料。如果在Cache中儲存了檔案,需要提供清除緩衝的功能。 Preferences檔案夾:使用者偏好的專屬目錄,儲存應用的所有喜好設定。平時使用[NSUserDefault standardDefault]儲存,iTunes同步裝置時會備份該目錄。(快速儲存一些重要的簡單的檔案在這裡,本質也是plist儲存,比plist儲存稍方便)。
3》Tmp檔案夾 檔案夾路徑:/Users/使用者名稱/Library/ Developer/CoreSimulator/Devices/模擬器UDID/data/tmp 臨時目錄,儲存應用運行時所需的臨時資料,重新啟動就會被清除,儲存空間吃緊也可能會被系統清除。tmp目錄檔案不會被備份,清理也不需要程式員關心。 * lastPathComponent 從路徑中取出最後的組成部分,通常就是檔案名稱 註:一般儲存在
Documents。(使用者帳號,登陸狀態token)
2、archive(NSCoding) 歸檔解檔,NSKeyedArchiver\NSkeyedUnarchiver 一次性寫入所有資料 一次性讀取所有資料 不可以分批讀取,有效能問題。
3、Stream
4、等
三、KeyChain
KeyChain是蘋果提供的帶有可逆加密的儲存機制。普遍用在各種存密碼的需求上。另外,由於App卸載只要系統不重裝,Keychain中的資料依舊 能夠得到保留,以及可被iCloud同步的特性,大家都會在這裡儲存使用者唯一標識串。所以有需要加密、需要存iCloud的敏感小資料,一般都會放在 Keychain。
四、基於資料庫 主要是便於增刪改查,
(xmpp)沒用過
B16-iOS開發中的幾種儲存方式