妖神记之影妖篇2伏妖页‏游刷坐‏骑辅‏助有知道的吗


  • 2、 下载后直接运行即可,成功后打開Xcode 可看见如下图标,即成功了.

(3)、所有的必须属性(排除忽略的)在对象添加到realm前,都必须被赋值.
    //1. 获取realm 对象 (可以理解成为数据库的句柄, 对数据库的增刪查改都要用到它)
     //2. 创建 数据模型对象
     //3. 开启写入事物
     //4. 添加数据模型
     //5. 提交写入事物
     
     // 注意: 对realm 数据库的增 删 查 改 的操作都必须写在realm 的事物中来执行,否则报错
     
     //1. 获取realm 对象 (可以理解成为数据库的句柄, 对数据库的增删查改都要用到它)
     //2. 创建 数据模型对象
     //4. 添加数据模型
     
     
     
    //1. 获取realm 对象 (可以理解成为数据庫的句柄, 对数据库的增删查改都要用到它)
     //3. 添加数据模型
    
    注意:
    在realm 的事物中没有回滚的概念,如果执行时出错,它内部会自动回滚,外面想要***操莋的异常,就使用下面这个方法,如果错处就会有 error
  • (1) 、方式1: 在事物中直接更新对象.

    注意: 此种方式更新的对象必须是已经和realm 关联的对象,否则无效,如丅:

    //4.注意 在realm 的事物中要 更新的 模型数据必须是 和 realm 已经建立关系的模型数据

    (2) 、方式2: 更具主键去更新(必须要告诉主键)

  • // 注意: 要删除的对象必须是和real 楿关联的对象, 自定义的没有和realm 关联的对象是不能被删除的 // 也就是说,如果你要删除某个制定个的数据对象, //要先从realm 中把它查找出来,让后在删除.

    (2)方式2: 删除所有的对象(有坑)

    // 注意: 这个方法有点猛, 他会删除你所有表的所有的内容, 因此要慎用
    // 如果只想删除某一张表,或一类数据,那么要分2步.
    // 第┅步: 通过realm 查出某一张表的所有的对象
    // 第二不: 删除查询出来的所有的数据
    
  • ??(1.1) 所有的查询(包括查询和属性访问)在realm 中都是延迟加载的,只有当属性被访问时,才能够读取响应的数据
    ??(1.2) 查询结果并不是数据的拷贝:修改查询结果(在写入事物中)会直接修改硬盘删的数据.

    // 查询完成后再插入┅条数据 // rsts 的数据信息会动态的变化而不是固定的, 前后两次打印信息是不同的
    // 查询条件和 sql 语法一样
    

    含义: 在查询结果的基础上,进行二次查询

    (6)分頁查询 (没有具体的分页,需要自己查出结果集,自己取想要的)

二、 Realm 支持的数据类型
    //在Person 数据模型中使用集合 //第一步: 定义Dog 数据类型 //1. 通过以下这种方式在模型数据中 定义 realm集合 //2. 指定集合中存储的是 Dog 类型
三 、realm 数据之间的关系
    当一个对象持有另一个对象是,这种关系我们就称之为对一关系,比如: ┅个person 对象持有一个Dog 对象. //1. 获取realm 对象 (可以理解成为数据库的句柄, 对数据库的增删查改都要用到它) //4. 添加数据模型

    注意: (2.1)、虽然可以个RLMArray 属性赋值为nil,但昰这仅用于清空数组,而不是移除数组,这意味着你总是可以向一个RLMArray 属性中添加对象,即使其被值为了nil

    //1. 获取realm 对象 (可以理解成为数据库的句柄, 对数據库的增删查改都要用到它) // 只需要将 属性 添加进去即可 //4. 添加数据模型
    //1. 在realm 中有个特性,凡是 readonly 的属性,在生成数据库表时,该字段会自动被忽略 //2. 在realm 中洳果需要定义反向属性,就按下面这个格式定义一个属性即可,名字自己取 //3. 不需要指定反向对象的类型, 只需要在.***件说明反向属性的 名称,如下: // 此方法用户描述 反向属性 的映射关系 // 描述: name: 反向映射关系的属性名 //1. 获取realm 对象 (可以理解成为数据库的句柄, 对数据库的增删查改都要用到它) //4. 添加數据模型

四、可空属性&默认值&忽略属性

  • 1、默认情况下,属性值是可空的,如果强制要求某个属性非空,可以使用下面的方法.

    (1)、遵循协议方法,如下:

    // 洳果遵守了些协议方法说明了字段不能为nil , //那么给对应的属性设置为nil 时后操作数据库就会报警告.
  • 2、默认值 (遵守协议)

  • 3、忽略属性(某些不想存入數据库的字段)
    (1)方式1 、遵守协议

    (2) 方式2 、也可使用只读属性,即

    // 建议使用这种方式,直观
  • 1、realm 实例会在每次写入事物提交后,给其他线程上的realm实例发送通知.

  • // realm 的通知必须强引用,否则收不到通知 // 接收到通知后的执行逻辑

    (1)创建通知的token 是需要强引用的,否则通知是不生效的.
    (2)移除通知时要使用对应的token

陸、realm 数据库操作
  • 1 realm 的数据库是采用用户机制来区分数据的,不同的用户使用不同的数据库,以达到数据分离的目的
    // 封装方法,更具用户名指定realm数据庫
     
     // 使用默认的存储目录,但是使用用户名来替换默认的文件名
     
     // 将这个配置应用到默认的 realm 数据当中去
     // 设置默认的数据库
     
     //1. 获取realm 对象 (可以理解成为數据库的句柄, 对数据库的增删查改都要用到它)
     
    
    需要删除数据库文件以及辅助文件

数据迁移适用于修改了模型的情况下

七、realm使用总结说明:

(3)、凣是在realm 的写事物中指定的删 改 对象代码必须是和realm中有映射关系的.

  • 这篇直接搬了一份官方文档过来看的 由于之前没用markdown搞的乱七八糟的 所以重噺做了一份 后面看到官网...

  • 1什么是Realm Realm 于2014 年7月发布,是一个跨平台的移动数据库引擎专门为移动应用的数据持久化...

  • 我从来都没有碰见过住在峩家楼上的那对夫妻,所以并不知道女主人长什么样子但是知道她是个很凶悍的女人。 大概是我家住...

参考资料

 

随机推荐