iOS數據存儲之Core Data(一)
Core Data 基礎
Core Data 是一個API集合箭启,被設計用來簡化數據對象的持久存儲。Core Data 提供一種模型用于保存模型對象并在之后取回他們栖榨。Core Data 還管理對對象模型的改變找都,提供撤銷支持捏膨,并確保模型對象間關系的一致性却汉。
Core Data 架構
上圖是Core Data的設計概覽驯妄。其中的關鍵組件是數據存儲(data store)、持久存儲協調器(Persistent Store Coordinator)合砂、托管對象模型(Managed Object Model)和托管對象上下文(Managed Object Context)青扔。
1. 數據存儲
數據存儲是保存數據的一個或一組文件。它是當保存消息發(fā)送到Coredata 后實際寫入到磁盤的文件既穆。通常在移動應用程序中只有一個數據存儲文件。
依賴于創(chuàng)建數據存儲時使用的參數雀鹃,數據存儲可以是一個二進制文件幻工、SQLITE數據庫或一個內存中的數據文件。
2. 持久存儲協調器
持久協調存儲器在托管對象上下文和數據存儲之間扮演中間人的角色黎茎。協調器從上下文中獲得數據請求并將它們轉發(fā)給合適的數據存儲囊颅,協調器還允許上下文訪問多個數據存儲。協調器將數據存儲和上下文關聯在一起傅瞻。持久存儲協調器是NSPersistentCoordinator
類的實例踢代。持久存儲協調器不是線程安全的。
3. 托管對象模型
托管對象模型代表數據模型架構嗅骄,是NSManagedObjectModel
類的實例胳挎。
模型由一組實體組成,他們定義了應用程序中的數據對象溺森。數據模型通常使用XCode的提供的圖形化數據建模工具創(chuàng)建慕爬。數據模型應該定義程序中使用的數據對象。持久協調存儲器依據數據模型中定義的約定創(chuàng)建托管對象屏积。
4. 托管對象上下文
托管對象上下文提供訪問托管數據對象的接口医窿,托管對象上下文是NSManagedObjectContext
類的實例。上下文用于保存所有托管對象炊林,托管對象是NSManagedObject
類或其之類的實例姥卢。可以在上下文中添加對象渣聚、刪除對象独榴、修改對象,當準備好后奕枝,可以讓上下文將當前狀態(tài)提交到磁盤保存括眠。可以在上下文中創(chuàng)建獲取請求將數據從存儲中取回到上下文倍权,進而對數據進行處理掷豺。