core data 介绍
? ? Core Data ? 是 iOS SDK ? 里的一個很強大的框架,允許程序員 以面向對象 的方式儲存和管理數(shù)據(jù) 。使用 Core Data 框架,程序員可以很輕松有效 地通過面向對象的接口
Core Data 框架提供了 對象 - 關系映射 (ORM) 的功能,即能夠將 OC 對象轉 化成數(shù)據(jù),保存在 SQLite3 數(shù)據(jù)庫文件中,也能夠將保存在數(shù)據(jù)庫中的 數(shù)據(jù)還原成 OC 對象 ??
? ? 在數(shù)據(jù)操作過程中,無需編寫任何 SQL 語句 ??
managed object context :是基于對象來說的負責的是對數(shù)據(jù)和對象之間的交互的。
manage object model:是對象模型,對應的是xcode中的模型文件。
persistent store coordinator:是對象和實體之間的轉換協(xié)調(diào)起,用于管理不同存儲對象的上下文關系
persistent object store :就是持久化對象的數(shù)據(jù)庫
如果還不懂那么看下面這張圖
最底層的就是PersistentObjectStore,也就是我們實際存儲數(shù)據(jù)的結構;
圖中的模型就是ManagedObjectModel,就是數(shù)據(jù)轉化為對象的模型;
以SQLite數(shù)據(jù)庫為例:
- 讀取數(shù)據(jù)庫的數(shù)據(jù)時,數(shù)據(jù)庫數(shù)據(jù)先進入數(shù)據(jù)解析器,根據(jù)對應的模板,生成對應的關聯(lián)對象。
- 向數(shù)據(jù)庫插入數(shù)據(jù)時,對象管理器先根據(jù)實體描述創(chuàng)建一個空對象,對該對象進行初始化,然后經(jīng)過數(shù)據(jù)解析器,根據(jù)對應的模板,轉化為數(shù)據(jù)庫的數(shù)據(jù),插入數(shù)據(jù)庫中。
- 更新數(shù)據(jù)庫數(shù)據(jù)時,對象管理器需要先讀取數(shù)據(jù)庫的數(shù)據(jù),拿到相互關聯(lián)的對象,對該對象進行修改,修改的數(shù)據(jù)通過數(shù)據(jù)解析器,轉化為數(shù)據(jù)庫的更新數(shù)據(jù),對數(shù)據(jù)庫更新。
這些還是要在使用中進行加深理解
推薦你們?nèi)绻ぷ髦惺褂玫絚ore data 的話推薦一個第三方庫給你們交magical recad;
如果查找一條數(shù)據(jù)的話,我們數(shù)據(jù)庫會首先進入數(shù)據(jù)解析器里面(persistent store coordinator )根據(jù)一定的數(shù)據(jù)模型來來生成對應的關聯(lián)對象
再比如插入一條數(shù)據(jù)的時候,對象管理器(mangedobject context)會先根據(jù)實體描繪一個空的對象,然后經(jīng)過(persistent store coordinator )根據(jù)對應的model 轉化為數(shù)據(jù)庫中的數(shù)據(jù)插入到數(shù)據(jù)庫中
總結
以上是生活随笔為你收集整理的core data 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金山打字通初练习
- 下一篇: 特征提取算法(1)——纹理特征提取算法L