1. 程式人生 > >iOS 之持久化儲存 plist、NSUserDefaults、NSKeyedArchiver、資料庫

iOS 之持久化儲存 plist、NSUserDefaults、NSKeyedArchiver、資料庫

1.什麼是持久化?

本人找了好多文章都沒有找到滿意的答案,最後是從孫衛琴寫的《精通Hibernate:Java物件持久化技術詳解》中,看到如下的解釋,感覺還是比較完整的。摘抄如下: 

狹義的理解: “持久化”僅僅指把域物件永久儲存到資料庫中;廣義的理解,“持久化”包括和資料庫相關的各種操作。 

● 儲存:把域物件永久儲存到資料庫。 

● 更新:更新資料庫中域物件的狀態。 

● 刪除:從資料庫中刪除一個域物件。 

● 載入:根據特定的OID,把一個域物件從資料庫載入到記憶體。 

● 查詢:根據特定的查詢條件,把符合查詢條件的一個或多個域物件從資料庫載入內在存中。 

2.為什麼要持久化?

持久化技術封裝了資料訪問細節,為大部分業務邏輯提供面向物件的API。 

● 通過持久化技術可以減少訪問資料庫資料次數,增加應用程式執行速度; 

● 程式碼重用性高,能夠完成大部分資料庫操作; 

● 鬆散耦合,使持久化不依賴於底層資料庫和上層業務邏輯實現,更換資料庫時只需修改配置檔案而不用修改程式碼。

 

檔案

歸檔(NSKeyedArchiver)

屬性列表(NSUserDefaults)

資料庫(SQLite、CoreData、第三方類庫)