首页 > 其他分享 >CoreData框架

CoreData框架

时间:2023-07-14 21:32:39浏览次数:36  
标签:Core Managed 框架 对象 Object CoreData 上下文 Data

框架概图

CoreData框架_Data

1、被管理对象模型(Managed Object Models)

多数Core Data的功能依赖于你创建的,用来描述程序的实体(Entity)及其属性(Property)、关系(Relationships)的模型图。 模型图由NSManagedObjectModel所表示。一般说来,模型的信息越充实,Core Data能提供的功能就越好。

Managed Object Model 是描述应用程序的数据模型,这个模型包含实体(Entity),特性(Property),读取请求(Fetch Request)等。

2、Managed Object Context

你可以把被管理对象上下文想象成一个”聪明“的便笺簿。当你从数据持久层获取对象时,就把这些临时的数据拷贝拿到写在自己的便笺簿上(当然,在便笺上对象会 “恢复”以前的对象图结构)。然后你就可以随心所欲的修改这些值了(本子是你的,随便画都可以),除非你保存这些数据变化,否则持久层的东西是不会变 的。(跟修改文件后要保存是一个道理)。

Managed Object Context 参与对数据对象进行各种操作的全过程,并监测数据对象的变化,以提供对 undo/redo 的支持及更新绑定到数据的 UI。

 

3、持久化存储助理(Persistent Store Coordinator)

程序中的对 象和外部存储的数据通过Core Data框架中的一系列对象进行协调,这一系列的对象总的被称为持久存储栈(Persistence stack)。在栈顶是被管理对象上下文(Managed object context),而栈底是持久化对象存储层(Persistence object store)。在它们之间就是持久化存储助理。

 

4、Managed Object

附在Core Data框架中模型对象(Model objects)常被称为“被管理对象”(Managed objects)。所有的被管理对象都要通过上下文进行注册。使用上下文,你可以在对象图中添加、删除对象,并记录对象的更改(包括单个对象,或是对象间 的关系)。记录更改后就能支持撤销和重做的功能。同时,上下文还能保证关系更改后对象图的完整性。

5、Controller

图中绿色的 Array Controller, Object Controller, Tree Controller 这些控制器,一般都是通过 control+drag 将 Managed Object Context 绑定到它们,这样我们就可以在 nib 中可视化地操作数据。

参考资料:

[Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解

iOS学习笔记——Core Data

Core Data 编程指南
http://www.cocoachina.com/iphonedev/sdk/2010/1126/2397.html

苹果开发之Cocoa编程(第三版)(中文版)

标签:Core,Managed,框架,对象,Object,CoreData,上下文,Data
From: https://blog.51cto.com/u_15588078/6726704

相关文章

  • yii 框架 afterSave Model 数据变更 同步数据 处理新增了逻辑
    /***来源*1.Model::updateAll()*2.Model::findOne(id)->save()*@param$attributes*@param$condition*@param$params*@returnint*@throws\yii\db\Exception*/publicstaticfunctionupdateAll($attributes,$condition='',$params=......
  • yii 框架 Model 映射表 一对多 或 一对一
    publicfunctiongetTmsOrderTravel(){//第一个参数为要关联的子表模型类名,//第二个参数指定通过子表的user_id,关联主表的usesr_id字段//这里写清楚点大概意思就是User.user_id=>Order.user_idreturn$this->hasMany(TmsOrderTravel::className(),['tt_id'......
  • 关于scrapy框架的学习
    最近打算参加一个爬虫比赛,特来研究爬虫,在掌握了爬虫的基本实现后,我们需要用一个更高效的方式来写爬虫这个时候便用到了爬虫框架scrapyscrapy是什么?Scrapy是一个应用程序框架,用于对网站进行爬行和提取结构化数据,这些结构化数据可用于各种有用的应用程序,如数据挖掘、信息处......
  • iris框架java
    如何使用Iris框架进行Java开发简介Iris是一个基于Java的高性能Web框架,它提供了简洁易用的API,使得开发者可以快速构建Web应用程序。本文将介绍如何使用Iris框架进行Java开发,并指导刚入行的开发者实现一个简单的示例。整体流程下面是使用Iris框架进行Java开......
  • SLF4J 日志框架与 SpirngBoot
    SLF4J是一个相对成熟的日志框架,它基于外观模式(门面模式)实现了插拔式的日志实现替换功能,而且还提供了其他日志框架的迁移方案。迁移方案目的依赖库备注将ApacheCommonsLogging框架打印的日志桥接至SLF4J框架jcl-over-slf4j需要在构建工具中排除jcl的......
  • fastapi框架docs文档Responses去掉默认的异常响应422Validation Error
    fastapi框架原生docs的Responses中会有个默认的422ValidationError响应,但大多数实际开发应该不需要,如何去除呢?我用的方法是用猴子补丁重写fastapi.openapi.util里的get_openapi_path方法,去掉加入默认422的那段代码即可,下面这些http422=str(HTTP_422_UNPROCESSABLE_ENTITY)......
  • Python GUI框架
    问了一下newBing,常用的有这么几种:TkinterPyQtwxPythonKivyBeeware其中后两种的优点主要体现在跨平台上,一方面是我没这个需求,另一方面是别的框架也可以跨平台,所以先排除掉。Tkinter是Python内置的框架,容易上手一点,但是稍显简陋。PyQt很全面,但比较复杂。wxPython......
  • 【物联网】物联网时代25大开源IoT框架(二)
    00.目录@目录00.目录01.No.13Oracle02.No.14SAP03.No.15MicrosoftAzure04.No.16GoogleCloudPlatform05.No.17IBMWatson06.No.18HewlettPackardEnterprise07.No.19DataVbyBsquare08.No.20MindspherebySiemens09.No.21AylaNetwork10.No.22MBEDIo......
  • Vue3+Vue-Router+TypeScript+Vite+Element-Plus+Axios+Pinia快速搭建开发框架
    1、环境准备(1)首先你得需要安装node和npm2、环境初始化(1)先随意找个文件夹,初始化vite#安装pnpmnpmi-gpnpm#初始化vitepnpmcreatevite#安装依赖pnpminstall(2)最后我们执行pnpmrundev3、安装插件(1)Eslint校验代码工具安装eslint#安装eslint......
  • RPC 框架性能测试,注意这 8 点就够了
    某天,二狗子写了一个RPC框架后,简单测了一下性能,发现超出grpc一大截。二狗子一高兴,忍不住找同事吹了一波。结果,同事亲测后对二狗子说框架性能也就这样。二狗子表示不服,跟同事一番唇枪舌剑后才发现,两个人测试方法有点不大一样。先不论测试方法不同在哪里,今天二狗子先来聊聊,对RPC......