资讯专栏INFORMATION COLUMN

iOS数据持久化存储-CoreData

v1 / 3163人阅读

摘要:沙盒相关类型文件数据库文件,存储数据是之后系统会默认开启一个新的数据库日志记录模式生成的。在调试的时候,我们需要即时的观察数据库的变化,我们就可以先禁用这个日志记录模式,只需要在建立持久化存储区的时候存入一个参数即可。

1.App沙盒相关类型文件

sqlite:数据库文件,存储数据
sqlite-shm,sqlite-wal是iOS7之后系统会默认开启一个新的“数据库日志记录模式”(database journaling mode)生成的。在调试的时候,我们需要即时的观察数据库的变化,我们就可以先禁用这个日志记录模式,只需要在建立持久化存储区的时候存入一个options参数即可。

NSDictionary *options = @{NSSQLitePragmasOption: @{@"journal_mode": @"DELETE"}};

sqlite-shm:共享内存(Shared Memory)文件,该文件里面会包含一份sqlite-wal文件的索引,系统会自动生成shm文件,删除它,下次运行还会自动生成
sqlite-wal:预写式日志(Write-Ahead Log)文件,这个文件里面会包含尚未提交的数据库事务,所以看见有这个文件了,就代表数据库里面还有没处理完的事务需要提交,所以说如果有sqlite-wal文件,再去打开sqlite文件,很可能最近一次数据库操作还没有执行

2.表的字段

Z_PK:是表的主键,从1开始递增,唯一值。

Z_ENT:表在xcdatamodel中的索引值,创建了5个表,Z_ENT的区间就是[1,5]。

Z_OPT:表示的是每条数据被操作的次数,初始化值为1,只要是增删改查都会加1。

3.轻量级迁移

只需要在建立持久化存储区的时候存入一个options参数即可。

NSDictionary *options = @{NSSQLitePragmasOption: @{@"journal_mode": @"DELETE"},
                              NSMigratePersistentStoresAutomaticallyOption :@YES,
                              NSInferMappingModelAutomaticallyOption:@YES
                              };

轻量级的迁移:
实体:可以新增实体,可以删除实体,实体名字修改(需将重命名后实体的Renaming ID,设置为之前的实体名)。
实体字段:修改实体的字段(否则旧字段对应的数据会被清除,其它的字段数据不受影响,)。

为Entity简单的添加一个属性

为Entity移除一个属性

属性值由 Optional Non-optional 之间转换

为属性设置 Default Value

重命名Entity或者Attribute

增加一个新的relationship 或者删除一个已经存在的 relationship

重命名relationship

改变relationship to-one to-many 等

增加,删除Entities

增加新的 Parent 或者 Child Entity

从Hierarchy中移除Entities

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110801.html

相关文章

  • 对比iOS中的四种数据存储

    摘要:把内存数据转移到闪存中进行持久化的操作称成为归档。应用加载远程数据生成应用数据对象的同时,通过把数据缓存起来,再次请求则直接通过获取数据。每一次有新的缓存对象存入,自动检测空间中过期的集合并清除。 你是用什么方法来持久保存数据的?这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题,而且大家对这个问题的热情持续高涨。本文主要从概念上把数据存储这个问题进行剖析,并且结合各自特点和适...

    szysky 评论0 收藏0
  • iOS数据久化存储-CoreData

    摘要:沙盒相关类型文件数据库文件,存储数据是之后系统会默认开启一个新的数据库日志记录模式生成的。在调试的时候,我们需要即时的观察数据库的变化,我们就可以先禁用这个日志记录模式,只需要在建立持久化存储区的时候存入一个参数即可。 1.App沙盒相关类型文件 sqlite:数据库文件,存储数据sqlite-shm,sqlite-wal是iOS7之后系统会默认开启一个新的数据库日志记录模式(data...

    whataa 评论0 收藏0
  • iOS数据久化存储-CoreData

    摘要:沙盒相关类型文件数据库文件,存储数据是之后系统会默认开启一个新的数据库日志记录模式生成的。在调试的时候,我们需要即时的观察数据库的变化,我们就可以先禁用这个日志记录模式,只需要在建立持久化存储区的时候存入一个参数即可。 1.App沙盒相关类型文件 sqlite:数据库文件,存储数据sqlite-shm,sqlite-wal是iOS7之后系统会默认开启一个新的数据库日志记录模式(data...

    Atom 评论0 收藏0
  • iOS数据久化方案

    摘要:技术由来数据持久化是开发中必不可少的一项技能。的使用介绍的详细介绍的传送门写在最后本文主要是对开发过程中使用到的数据持久化方案的一个归纳整理,有些其实我自己也没有具体使用过,但是附上了相应的链接,有需要的同学可以具体的去学习。 技术由来 数据持久化是iOS开发中必不可少的一项技能。因为开发中我们多会涉及到用户信息存储、文件存储、应用内容缓存中的一个或者几个场景。 数据持久化的几种方式 ...

    marser 评论0 收藏0
  • 认识CoreData - 初识CoreData

    摘要:由于项目比较大,还要兼顾之前项目的迭代和其他项目,目前为止只写完第一阶段。所以正如这系列文章的名字一样认识,打算写这系列文章来认识一下。文章中如有疏漏或错误,还请各位及时提出,谢谢 该文章属于原创,转载请注明: http://www.jianshu.com/p/c0e12a897971 `这段时间公司一直比较忙,和组里小伙伴一起把公司项目按照之前逻辑重写了一下。由于项目比较大,还要...

    _ivan 评论0 收藏0

发表评论

0条评论

v1

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<