




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CoreData技术变化论文关于基于iOS9iOS10的CoreData技术变化论文范文参考资料 范宝元 (西北民族大学,甘肃兰州730030) 摘要: CoreData 是一个苹果原生的框架,它拥有像数据库一样存储数据的功能,但本身并不是数据库。本文探究了在iOS9 与iOS10 中CoreData 的性能优化和发生的改变,并对这种变化进行相应的封装,以便兼容iOS9 和iOS10。 关键词:iOS9 iOS10 CoreData 性能优化 :TP273 :A :1003-9082 (xx) 02-0009-01 CoreData 是iOS5 之后才出现的一个框架,它提供了对象- 关系映射(ORM)的功能,即能够将OC 对象转化成数据,保存在SQLite 数据库文件中,也能够将保存在数据库中的数据还原成OC 对象。在此数据操作期间,开发者不需要编写任何SQL 语句。在CoreData 的技术堆栈主要分为一下几个部分,一个是N*anagedObjectContext 管理的模型部分,管理着所有CoreData 的托管模型对象;另一个是存储调度器NSPersistentStoreCoordinator,和SQL 数据库进行数据交互,负责操纵存储器类NSPersistentStore实现SQLite 的本地持久化。这就构成了CoreData 的大体结构。在iOS10中,其技术堆栈发生了一些细微变化,详情见下文分析。 在iOS9 中,CoreDataStack 是CoreData 的核心,由一组CoreData 核心对象组成,其技术堆栈图如下所示: 1.N*anagedObjectContext 对象管理上下文: 负责管理模型对象的集合; 2.N*anagedObjectModel 被管理的对象模型: 负责管理对象模型; 3.NSPersistentStoreCoordinator 存储调度器: 负责将数据保存到磁盘的; 其核心部分大致分为两个:一个是对象图管理,另一个是数据持久化; 在这两部分的中间,即堆栈中间,是持久化存储协调器(Persistent Store Coordinator,PSC)。通过它将对象图管理部分和持久化部分绑在一起。当这两部分中的一部分需要和另一部分交互,将通过PSC 来调节;并且,在iOS9之前,SQLite 的文件存储在Documents,在iOS10 之后,便把存储地址改为Library/Application/Support 中。 在iOS10 中,系统默认生成的是一个CoreData 存储容器NSPersistent-Container,NSPersistentContainer 是iOS10.0 新加的一个类,它的作用是管理CoreDataStack,可以理解为是CoreDataStack 的容器,其对数据的增删改查与在iOS9 中的过程相同,但是NSPersistentContainer 不兼容iOS9,如果在iOS9 中使用会闪退,需要进行适配处理,其核心代码如下: / 适配对象管理上下文 - (N*anagedObjectContext *)managedObjectContext / 获取系统版本 float systemNum = UIDevice currentDevice.systemVersion floatValue; / 根据系统版本返回不同的N*anagedObjectContext if(systemNum 10.0) return kCoreDataManager.managedObjectContext1; else return kCoreDataManager.persistentContainer.viewContext; / 适配NSPersistentContainer - (NSPersistentContainer *)getCurrentPersistentContainer / 获取系统版本 float systemNum = UIDevice currentDevice.systemVersion floatValue; / 根据系统版本返回不同的N*anagedObjectContext if(systemNum 10.0) return nil; else return kCoreDataManager.persistentContainer; 下图为笔者通过使用iOS9 与iOS10 的CoreData 往数据库中插入十万行数据所耗时间的对比图: 分析上图的对比结果,可以得出,传统的在主线程操作CoreData 插入十万行数据,足足等了22s 多;然而使用iOS10 的NSPersistentContainer 的多线程操作数据库插入十万行数据只需要2s 多,比传统的CoreData 速度快了将近10 倍。 结束语 在iOS 开发中,目前市场上有三种主流的数据库操作:FMDB、realm、和CoreData,然而CoreData 的使用率目前普遍较低。对于一种数据库技术的选择,无非就是使用时是否方便和操作大量数据时,是否耗时耗性能。但是通过上面的对比测试可以看出,在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年心理学与教育评估的相关能力测试题及答案
- 2025年项目策划与实施相关知识考试卷及答案
- 2025年金融理财师资格考试试卷及答案
- 2025年会计职业资格证考试模拟试卷及答案
- 2025年甘肃省庆阳市宁县中医医院招聘36人笔试参考题库及参考答案详解1套
- 2025年中国邮政集团有限公司安徽省分公司校园招聘笔试模拟试题含答案详解
- 物资购买领用管理制度
- 物资采购平台管理制度
- 特殊患者抢救管理制度
- 特殊物料运送管理制度
- 公共政策导论完整版课件全套ppt教学教程(最新)
- 妊娠期急性脂肪肝临床管理指南(2022版)解读
- 呼伦贝尔农业无人机项目可行性研究报告(范文)
- LTPS-LCD工艺流程简介资料
- 初中生物总复习(七八年级上下册)
- (完整版)10KV配电室安装工程施工方案
- 幼儿卫生保健试题和参考答案解析
- 锅炉基础知识及水泥余热发电锅炉性能1
- 辽宁省建筑施工三类人员安全生产考核合格证变更申请表
- (完整版)家庭亲密度与适应性量表
- DOE操作作业指导书
评论
0/150
提交评论